Ajout gestion complement avant saisie de contrat
Degug input float
This commit is contained in:
parent
a4621b3a6d
commit
6e779160ea
|
|
@ -144,6 +144,7 @@ define('CONTRATS_TABLE_STRUCT', array(
|
|||
"lieu_depot" => array( "type" => "int", "min" => 1, "max" => NULL, "default" => NULL, "force_default_under_min" => true ),
|
||||
"nb_cheque" => array( "type" => "int", "min" => 1, "max" => 99, "default" => 0, "force_default_under_min" => true ),
|
||||
"np_paniers_distrib_avt_saisie" => array( "type" => "int", "min" => 1, "max" => 99, "default" => 0, "force_default_under_min" => true ),
|
||||
"complement_avt_saisie" => array( "type" => "float", "min" => 0, "max" => 999.99, "default" => 0, "force_default_under_min" => true ),
|
||||
"force_eligible" => array( "type" => "bool", "default" => 0 ),
|
||||
"ignore_warning" => array( "type" => "bool", "default" => 0 ),
|
||||
"archive" => array( "type" => "bool", "default" => 0 ),
|
||||
|
|
@ -189,6 +190,7 @@ function getContratsTableSelectBaseSQL() {
|
|||
.LIEUX_TABLE.".`nom` as 'lieu_depot_nom',"
|
||||
.CONTRATS_TABLE.".`nb_cheque`,"
|
||||
.CONTRATS_TABLE.".`np_paniers_distrib_avt_saisie`,"
|
||||
.CONTRATS_TABLE.".`complement_avt_saisie`,"
|
||||
.CONTRATS_TABLE.".`force_eligible`,"
|
||||
.CONTRATS_TABLE.".`ignore_warning`,"
|
||||
.CONTRATS_TABLE.".`archive`,"
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ CREATE TABLE `contrats` (
|
|||
`lieu_depot` smallint(5) UNSIGNED NOT NULL,
|
||||
`nb_cheque` int(2) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`np_paniers_distrib_avt_saisie` int(2) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`complement_avt_saisie` float(5,2) NOT NULL DEFAULT '0',
|
||||
`force_eligible` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`ignore_warning` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`force_not_archive` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||
|
|
@ -291,19 +292,42 @@ CREATE VIEW `livraisons_nb_paniers` AS
|
|||
GROUP BY `livraisons_paniers`.`livraison`;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
-- STRUCTURE DE LA VIEW `complements_contrats_status`
|
||||
-- STRUCTURE DE LA VIEW `complements_contrats_paniers_status`
|
||||
-- --------------------------------------------------------
|
||||
|
||||
CREATE VIEW `complements_contrats_status` AS
|
||||
CREATE VIEW `complements_contrats_paniers_status` AS
|
||||
SELECT
|
||||
`contrats`.`client`,
|
||||
`contrat`,
|
||||
SUM(`complement`) as 'complements',
|
||||
SUM(`complement`) as 'complements',
|
||||
SUM(`complement_regle`) as 'complements_regles',
|
||||
( SUM(`complement`) - SUM(`complement_regle`) ) as 'complements_dus'
|
||||
FROM `livraisons_paniers`
|
||||
LEFT JOIN `contrats` ON `livraisons_paniers`.`contrat` = `contrats`.`ref`
|
||||
GROUP BY `contrat`;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
-- STRUCTURE DE LA VIEW `complements_contrats_paniers_status`
|
||||
-- --------------------------------------------------------
|
||||
|
||||
CREATE VIEW `complements_contrats_status` AS
|
||||
SELECT
|
||||
`contrats`.`client`,
|
||||
`contrats`.ref as 'contrat',
|
||||
CASE WHEN ISNULL(`complements_contrats_paniers_status`.`complements`)
|
||||
THEN `contrats`.`complement_avt_saisie`
|
||||
ELSE `contrats`.`complement_avt_saisie` + `complements_contrats_paniers_status`.`complements`
|
||||
END as 'complements',
|
||||
CASE WHEN ISNULL(`complements_contrats_paniers_status`.`complements_regles`)
|
||||
THEN 0.0
|
||||
ELSE `complements_contrats_paniers_status`.`complements_regles`
|
||||
END as 'complements_regles',
|
||||
CASE WHEN ISNULL(`complements_contrats_paniers_status`.`complements`)
|
||||
THEN `contrats`.`complement_avt_saisie`
|
||||
ELSE `contrats`.`complement_avt_saisie` + `complements_contrats_paniers_status`.`complements` - `complements_contrats_paniers_status`.`complements_regles`
|
||||
END as 'complements_dus'
|
||||
FROM `contrats`
|
||||
LEFT JOIN `complements_contrats_paniers_status` ON `contrats`.`ref` = `complements_contrats_paniers_status`.`contrat`;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
-- STRUCTURE DE LA VIEW `complements_clients_status`
|
||||
|
|
|
|||
|
|
@ -236,6 +236,9 @@ function modalFormContrat_init(modal) {
|
|||
// NB PANIER AVANT SAISIE
|
||||
initIntInput(modal.find("input[name=np_paniers_distrib_avt_saisie]"));
|
||||
|
||||
// NB PANIER AVANT SAISIE
|
||||
initFloatInput(modal.find("input[name=complement_avt_saisie]"));
|
||||
|
||||
modalFormContrat_clear(modal);
|
||||
}
|
||||
|
||||
|
|
@ -266,6 +269,7 @@ function modalFormContrat_loadDatas(modal,id) {
|
|||
|
||||
modal.find("input[name=nb_cheque]").val(datas.nb_cheque);
|
||||
modal.find("input[name=np_paniers_distrib_avt_saisie]").val(datas.np_paniers_distrib_avt_saisie);
|
||||
modal.find("input[name=complement_avt_saisie]").val(datas.complement_avt_saisie);
|
||||
modal.find("input[type=checkbox][name=force_eligible]").prop("checked",datas.force_eligible>0);
|
||||
modal.find("input[type=checkbox][name=ignore_warning]").prop("checked",datas.ignore_warning>0);
|
||||
|
||||
|
|
@ -305,6 +309,7 @@ function modalFormContrat_clear(modal) {
|
|||
|
||||
modal.find("input[name=nb_cheque]").val("");
|
||||
modal.find("input[name=np_paniers_distrib_avt_saisie]").val("");
|
||||
modal.find("input[name=complement_avt_saisie]").val("");
|
||||
modal.find("input[type=checkbox][name=force_eligible]").prop("checked",false);
|
||||
modal.find("input[type=checkbox][name=ignore_warning]").prop("checked",false);
|
||||
}
|
||||
|
|
@ -322,6 +327,7 @@ function modalFormContrat_getDatas(modal) {
|
|||
'lieu_depot' : parseInt( modal.find("select[name=lieu_depot]").val() ),
|
||||
'nb_cheque' : parseInt( modal.find("input[name=nb_cheque]").val() ),
|
||||
'np_paniers_distrib_avt_saisie' : modal.find("input[name=np_paniers_distrib_avt_saisie]").val(),
|
||||
'complement_avt_saisie' : parseFloat( modal.find("input[name=complement_avt_saisie]").val() ),
|
||||
'force_eligible' : modal.find("input[type=checkbox][name=force_eligible]").prop("checked") ? 1 : 0,
|
||||
'ignore_warning' : modal.find("input[type=checkbox][name=ignore_warning]").prop("checked") ? 1 : 0
|
||||
};
|
||||
|
|
|
|||
|
|
@ -738,7 +738,10 @@ function initIntInputWithLimits(elem, min, max) {
|
|||
}
|
||||
|
||||
function initFloatInput(elem) {
|
||||
elem.unbind('keypress').unbind('keyup').keypress( function(event) {
|
||||
if(elem.attr('type') == "number") elem.attr('lang', 'en').unbind('keypress').keypress( function(event) {
|
||||
if(event.keyCode==13) setTimeout(function() { elem.blur(); },50);
|
||||
})
|
||||
else elem.unbind('keypress').unbind('keyup').keypress( function(event) {
|
||||
keys = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 46, 44];
|
||||
if(event.keyCode==13) setTimeout(function() { elem.blur(); },50);
|
||||
if(jQuery.inArray(event.keyCode,keys)==-1) event.preventDefault();
|
||||
|
|
@ -752,6 +755,35 @@ function initFloatInput(elem) {
|
|||
});
|
||||
}
|
||||
|
||||
function initFloatInputWithLimits(elem, min, max) {
|
||||
if(elem.attr('type') == "number") elem.attr('lang', 'en').unbind('keypress').keypress( function(event) {
|
||||
if(event.keyCode==13) {
|
||||
event.preventDefault();
|
||||
setTimeout(function() { elem.blur(); },50);
|
||||
}
|
||||
})
|
||||
else elem.unbind('keypress').unbind('keyup').keypress( function(event) {
|
||||
keys = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 46, 44];
|
||||
if(event.keyCode==13) {
|
||||
event.preventDefault();
|
||||
setTimeout(function() { elem.blur(); },50);
|
||||
}
|
||||
if(jQuery.inArray(event.keyCode,keys)==-1) event.preventDefault();
|
||||
if((event.keyCode==46 || event.keyCode==44) && $(this).val().indexOf('.')>0) event.preventDefault();
|
||||
}).keyup( function(event) {
|
||||
if(event.keyCode==188 && $(this).val().indexOf('.')==-1) {
|
||||
var pos = $(this)[0].selectionStart;
|
||||
$(this).val( $(this).val().replace(",",".") );
|
||||
$(this)[0].setSelectionRange(pos,pos);
|
||||
}
|
||||
});
|
||||
|
||||
elem.blur(function(e) {
|
||||
if(isDefined(min) && parseFloat($(this).val())<min) $(this).val(min);
|
||||
else if(isDefined(max) && parseFloat($(this).val())>max) $(this).val(max);
|
||||
});
|
||||
}
|
||||
|
||||
function initDateInput(elem) {
|
||||
elem.unbind('keypress').unbind('keyup').keypress( function(event) {
|
||||
if(event.keyCode==13) {
|
||||
|
|
|
|||
|
|
@ -308,7 +308,7 @@ function modalFormLegume_addTarif(modal, datas) {
|
|||
modal.find("div.tarifs").append(iptGrp);
|
||||
|
||||
// INIT
|
||||
initFloatInput( iptGrp.find("input[name=prix]") );
|
||||
initFloatInputWithLimits( iptGrp.find("input[name=prix]"), 0.0, 999.99 );
|
||||
initDateInput( iptGrp.find("input[name=date]") );
|
||||
|
||||
iptGrp.find("button.btnDel").click(function(e) {
|
||||
|
|
|
|||
|
|
@ -59,11 +59,18 @@
|
|||
</div>
|
||||
<div class="form-group">
|
||||
<label>nb. de chèque(s) :</label>
|
||||
<input type="text" class="form-control" name="nb_cheque" placeholder="nb. de chèque(s)">
|
||||
<input type="number" class="form-control" name="nb_cheque" placeholder="nb. de chèque(s)">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>nb. de panier(s) distribué(s) avant la saisie du contrat :</label>
|
||||
<input type="text" class="form-control" name="np_paniers_distrib_avt_saisie" placeholder="nb. de panier(s)">
|
||||
<input type="number" class="form-control" name="np_paniers_distrib_avt_saisie" placeholder="nb. de panier(s)">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>complément avant la saisie du contrat :</label>
|
||||
<div class="input-group">
|
||||
<input type="number" class="form-control" name="complement_avt_saisie" placeholder="complément" lang="en" step="0.1">
|
||||
<span class="input-group-addon">€</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@
|
|||
{/foreach}
|
||||
</select>
|
||||
<span class="input-group-addon">prix :</span>
|
||||
<input type="number" class="form-control" name="prix" placeholder="prix" ref="new">
|
||||
<span class="input-group-addon">unité :</span>
|
||||
<input type="number" class="form-control" name="prix" placeholder="prix" ref="new" step="0.1" min="0.0">
|
||||
<span class="input-group-addon">unité :</span>
|
||||
<select class="form-control" name="unite">
|
||||
<option value="kg" selected>kg</option>
|
||||
<option value="pièce">pièce</option>
|
||||
|
|
|
|||
Loading…
Reference in New Issue