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 ),
|
"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 ),
|
"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 ),
|
"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 ),
|
"force_eligible" => array( "type" => "bool", "default" => 0 ),
|
||||||
"ignore_warning" => array( "type" => "bool", "default" => 0 ),
|
"ignore_warning" => array( "type" => "bool", "default" => 0 ),
|
||||||
"archive" => array( "type" => "bool", "default" => 0 ),
|
"archive" => array( "type" => "bool", "default" => 0 ),
|
||||||
|
|
@ -189,6 +190,7 @@ function getContratsTableSelectBaseSQL() {
|
||||||
.LIEUX_TABLE.".`nom` as 'lieu_depot_nom',"
|
.LIEUX_TABLE.".`nom` as 'lieu_depot_nom',"
|
||||||
.CONTRATS_TABLE.".`nb_cheque`,"
|
.CONTRATS_TABLE.".`nb_cheque`,"
|
||||||
.CONTRATS_TABLE.".`np_paniers_distrib_avt_saisie`,"
|
.CONTRATS_TABLE.".`np_paniers_distrib_avt_saisie`,"
|
||||||
|
.CONTRATS_TABLE.".`complement_avt_saisie`,"
|
||||||
.CONTRATS_TABLE.".`force_eligible`,"
|
.CONTRATS_TABLE.".`force_eligible`,"
|
||||||
.CONTRATS_TABLE.".`ignore_warning`,"
|
.CONTRATS_TABLE.".`ignore_warning`,"
|
||||||
.CONTRATS_TABLE.".`archive`,"
|
.CONTRATS_TABLE.".`archive`,"
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,7 @@ CREATE TABLE `contrats` (
|
||||||
`lieu_depot` smallint(5) UNSIGNED NOT NULL,
|
`lieu_depot` smallint(5) UNSIGNED NOT NULL,
|
||||||
`nb_cheque` int(2) UNSIGNED NOT NULL DEFAULT '0',
|
`nb_cheque` int(2) UNSIGNED NOT NULL DEFAULT '0',
|
||||||
`np_paniers_distrib_avt_saisie` 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',
|
`force_eligible` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||||
`ignore_warning` 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',
|
`force_not_archive` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||||
|
|
@ -291,10 +292,10 @@ CREATE VIEW `livraisons_nb_paniers` AS
|
||||||
GROUP BY `livraisons_paniers`.`livraison`;
|
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
|
SELECT
|
||||||
`contrats`.`client`,
|
`contrats`.`client`,
|
||||||
`contrat`,
|
`contrat`,
|
||||||
|
|
@ -305,6 +306,29 @@ CREATE VIEW `complements_contrats_status` AS
|
||||||
LEFT JOIN `contrats` ON `livraisons_paniers`.`contrat` = `contrats`.`ref`
|
LEFT JOIN `contrats` ON `livraisons_paniers`.`contrat` = `contrats`.`ref`
|
||||||
GROUP BY `contrat`;
|
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`
|
-- STRUCTURE DE LA VIEW `complements_clients_status`
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -236,6 +236,9 @@ function modalFormContrat_init(modal) {
|
||||||
// NB PANIER AVANT SAISIE
|
// NB PANIER AVANT SAISIE
|
||||||
initIntInput(modal.find("input[name=np_paniers_distrib_avt_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);
|
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=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=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=force_eligible]").prop("checked",datas.force_eligible>0);
|
||||||
modal.find("input[type=checkbox][name=ignore_warning]").prop("checked",datas.ignore_warning>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=nb_cheque]").val("");
|
||||||
modal.find("input[name=np_paniers_distrib_avt_saisie]").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=force_eligible]").prop("checked",false);
|
||||||
modal.find("input[type=checkbox][name=ignore_warning]").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() ),
|
'lieu_depot' : parseInt( modal.find("select[name=lieu_depot]").val() ),
|
||||||
'nb_cheque' : parseInt( modal.find("input[name=nb_cheque]").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(),
|
'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,
|
'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
|
'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) {
|
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];
|
keys = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 46, 44];
|
||||||
if(event.keyCode==13) setTimeout(function() { elem.blur(); },50);
|
if(event.keyCode==13) setTimeout(function() { elem.blur(); },50);
|
||||||
if(jQuery.inArray(event.keyCode,keys)==-1) event.preventDefault();
|
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) {
|
function initDateInput(elem) {
|
||||||
elem.unbind('keypress').unbind('keyup').keypress( function(event) {
|
elem.unbind('keypress').unbind('keyup').keypress( function(event) {
|
||||||
if(event.keyCode==13) {
|
if(event.keyCode==13) {
|
||||||
|
|
|
||||||
|
|
@ -308,7 +308,7 @@ function modalFormLegume_addTarif(modal, datas) {
|
||||||
modal.find("div.tarifs").append(iptGrp);
|
modal.find("div.tarifs").append(iptGrp);
|
||||||
|
|
||||||
// INIT
|
// INIT
|
||||||
initFloatInput( iptGrp.find("input[name=prix]") );
|
initFloatInputWithLimits( iptGrp.find("input[name=prix]"), 0.0, 999.99 );
|
||||||
initDateInput( iptGrp.find("input[name=date]") );
|
initDateInput( iptGrp.find("input[name=date]") );
|
||||||
|
|
||||||
iptGrp.find("button.btnDel").click(function(e) {
|
iptGrp.find("button.btnDel").click(function(e) {
|
||||||
|
|
|
||||||
|
|
@ -59,11 +59,18 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>nb. de chèque(s) :</label>
|
<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>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>nb. de panier(s) distribué(s) avant la saisie du contrat :</label>
|
<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>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
<span class="input-group-addon">prix :</span>
|
<span class="input-group-addon">prix :</span>
|
||||||
<input type="number" class="form-control" name="prix" placeholder="prix" ref="new">
|
<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>
|
<span class="input-group-addon">unité :</span>
|
||||||
<select class="form-control" name="unite">
|
<select class="form-control" name="unite">
|
||||||
<option value="kg" selected>kg</option>
|
<option value="kg" selected>kg</option>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue