From 415d04537d273879e4aa2a7b524806bfc98932bd Mon Sep 17 00:00:00 2001 From: Adrien RENARD Date: Thu, 1 Feb 2024 18:11:56 +0100 Subject: [PATCH] =?UTF-8?q?Debug=20function=20getClientComplementDuAtDate?= =?UTF-8?q?=20avec=20prise=20en=20charge=20des=20complements=20avt=20saisi?= =?UTF-8?q?e=20Table=20hover=20dans=20les=20formulaires=20livraisons=20Gro?= =?UTF-8?q?upement=20des=20paniers=20d'un=20m=C3=AAme=20client=20dans=20la?= =?UTF-8?q?=20feuille=20d'=C3=A9margement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- functions/functions_clients.php | 23 ++++++++- functions/functions_livraisons.php | 49 +++++++++++++------ public_html_admin/css/livraisons.css | 8 +++ public_html_admin/js/livraisons.js | 33 ++++++++++--- .../templates/livraisons/livraison_form.tpl | 2 +- .../livraisons/livraison_form_tab_paniers.tpl | 2 +- .../livraison_modal_view_tab_compo.tpl | 2 +- .../livraison_modal_view_tab_legumes.tpl | 2 +- .../livraison_modal_view_tab_paniers.tpl | 2 +- .../prints/livraison_print_emargement.tpl | 18 +++++-- 10 files changed, 106 insertions(+), 35 deletions(-) diff --git a/functions/functions_clients.php b/functions/functions_clients.php index 497a648..0980873 100644 --- a/functions/functions_clients.php +++ b/functions/functions_clients.php @@ -141,6 +141,25 @@ function getClientAbsences($id) { return getClientAbsencesList("fin", "DESC", $i function getClientComplementDuAtDate($id, $date) { $val = 0; + // CONTRATS + $sql = "SELECT" + ." CASE WHEN ISNULL(`complement_avt_saisie`)" + ." THEN 0.0" + ." ELSE `complement_avt_saisie`" + ." END as 'complement_avt_saisie'" + ." FROM ".CONTRATS_TABLE + ." WHERE `client`=".intval($id) + ." AND `date`<'".$date."'"; + + $r = $GLOBALS['db_admin']['man']->select($sql,1); + + if(!$r['erreur']) $val += floatval($r['datas']['complement_avt_saisie']); + else { + $er = "
sql: ".$sql."
error: ".getReadableVar($r['erreur']); + return "Une erreur est survenue durant la récupération du complement dû par le client dans le base de données !".$er; + } + + // PANIERS $sql = "SELECT" ." CASE WHEN ISNULL( SUM(`complement`) - SUM(`complement_regle`) )" ." THEN 0.00" @@ -155,10 +174,10 @@ function getClientComplementDuAtDate($id, $date) { $r = $GLOBALS['db_admin']['man']->select($sql,1); - if(!$r['erreur']) $val = $r['datas']['complement_du']; + if(!$r['erreur']) $val += floatval($r['datas']['complement_du']); else { $er = "
sql: ".$sql."
error: ".getReadableVar($r['erreur']); - $GLOBALS['errors'][] = "Une erreur est survenue durant la récupération dû complement du par le client dans le base de données !".$er; + return "Une erreur est survenue durant la récupération du complement dû par le client dans le base de données !".$er; } return $val; diff --git a/functions/functions_livraisons.php b/functions/functions_livraisons.php index 1ffe1ea..5b2e762 100644 --- a/functions/functions_livraisons.php +++ b/functions/functions_livraisons.php @@ -142,24 +142,42 @@ function getLivraisonEmargementList($paniers_eligibles, $date, $lieu=0) { if($l["ref"] == $lieu || !$lieu>0) { foreach($l["paniers"] as $pType) { foreach($pType["paniers"] as $p) { - if($p["present"]) { - $du = getClientComplementDuAtDate($p["client_ref"], $date); - if($du > 0) $p["complement_du"] = "$du €"; - else if($du < 0) $p["complement_du"] = abs($du)." € d'avoir"; - else $p["complement_du"] = "/"; - - if((float)$p["complement"]>0) $p["complement"] .= " €"; - else $p["complement"] = ""; - - if((float)$p["complement_regle"]>0) $p["complement_regle"] .= " €"; - else $p["complement_regle"] = ""; + if(array_key_exists($p["client_ref"], $list)) { + if($p["present"]) { + $o = $list[$p["client_ref"]]; + + // COMPLEMENT + if((float)$p["complement"]>0) $o["complement_print"] = number_format(($o["complement"] + $p["complement"]), 2, '.', ' ')." €"; + // COMPLEMENT REGLE + if((float)$p["complement_regle"]>0) $o["complement_regle_print"] = number_format(($o["complement_regle"] + $p["complement_regle"]), 2, '.', ' ')." €"; + // PANIERS + $o["paniers"][] = $p; + + $list[$p["client_ref"]] = $o; + } } else { - $p["complement_du"] = "/"; - $p["complement"] = "/"; - $p["complement_regle"] = "/"; + $p["complement_du_print"] = "/"; + $p["complement_print"] = ""; + $p["complement_regle_print"] = ""; + + if($p["present"]) { + // COMPLEMENT DU + $p["complement_du"] = getClientComplementDuAtDate($p["client_ref"], $date); + if($p["complement_du"] > 0) $p["complement_du_print"] = number_format($p["complement_du"], 2, '.', ' ')." €"; + else if($p["complement_du"] < 0) $p["complement_du_print"] = number_format(abs($p["complement_du"]), 2, '.', ' ')." € d'avoir"; + + // COMPLEMENT + if((float)$p["complement"]>0) $p["complement_print"] = number_format($p["complement"], 2, '.', ' ')." €"; + // COMPLEMENT REGLE + if((float)$p["complement_regle"]>0) $p["complement_regle_print"] = number_format($p["complement_regle"], 2, '.', ' ')." €"; + // PANIERS + $p["paniers"] = array(); + $p["paniers"][] = $p; + } + + $list[$p["client_ref"]] = $p; } - $list[] = $p; } } } @@ -376,7 +394,6 @@ function getLivraisonPaniersEligibles($paniers_groupe, $date, $quinz_groupe, $pa } // AJOUT - $list[$lieu]["paniers"][$pType]["paniers"][] = $i; if($i["present"]) { $list[$lieu]["nb_paniers"]++; diff --git a/public_html_admin/css/livraisons.css b/public_html_admin/css/livraisons.css index 5a53c8c..f05ecf4 100644 --- a/public_html_admin/css/livraisons.css +++ b/public_html_admin/css/livraisons.css @@ -108,6 +108,8 @@ .formLivraison table.panier tr.legume td.unite { width: 40px; } +.formLivraison table.panier tr.editing { background-color: #cdebf8; } + .formLivraison table.panier th.nb_paniers_restants, .formLivraison table.panier td.nb_paniers_restants { width: 120px; text-align: center; } @@ -233,6 +235,12 @@ table.emargement .nb_paniers { max-width: 25px; } table.emargement .complement { max-width: 40px; } table.emargement .signature { max-width: 60px; } +table.emargement .type.multi_paniers, +table.emargement .nb_paniers.multi_paniers { + padding-top: 6px; + padding-bottom: 6px; +} + table.emargement tr.absent { background-color: #F0F0F0; } table.emargement tr.absent td.nom, diff --git a/public_html_admin/js/livraisons.js b/public_html_admin/js/livraisons.js index cb0844a..74e89f4 100644 --- a/public_html_admin/js/livraisons.js +++ b/public_html_admin/js/livraisons.js @@ -186,6 +186,7 @@ function modalViewLivraison_loadPaniers() { modalViewLivraison.find("div.tabPaniers tr:not(.absent) td.complement").each(function(n,e) { $(this).addClass("editable").dblclick(function(e) { e.preventDefault(); + $(this).parent().addClass("editing"); val = parseFloat( $(this).html() ); var ipt = $(""); $(this).html("").append(ipt); @@ -198,7 +199,8 @@ function modalViewLivraison_loadPaniers() { }) if(val>0) ipt.val(val).attr("old_value", val); - ipt.blur(function(e) { + ipt.blur(function(e) { + $(this).parent().parent().removeClass("editing"); if( $(this).hasClass("saving") ) return; if( parseFloat($(this).attr("old_value"))>0 ) ipt.parent().html(number_format(parseFloat($(this).attr("old_value")), 2)+" €"); else ipt.parent().html(".") @@ -211,12 +213,25 @@ function modalViewLivraison_loadPaniers() { modalViewLivraison.find("div.tabPaniers tr:not(.absent) td.complement_regle").each(function(n,e) { $(this).addClass("editable").dblclick(function(e) { e.preventDefault(); + $(this).parent().addClass("editing"); val = parseFloat( $(this).html() ); var ipt = $(""); $(this).html("").append(ipt); initFloatInput(ipt); + ipt.keypress( function(event) { + if(event.keyCode==13) { + $(this).addClass("saving"); + modalViewLivraison_saveComplement( $(this) ); + } + }) + if(val>0) ipt.val(val).attr("old_value", val); - ipt.blur(function(e) { modalViewLivraison_saveComplement( $(this) ); }); + ipt.blur(function(e) { + $(this).parent().parent().removeClass("editing"); + if( $(this).hasClass("saving") ) return; + if( parseFloat($(this).attr("old_value"))>0 ) ipt.parent().html(number_format(parseFloat($(this).attr("old_value")), 2)+" €"); + else ipt.parent().html(".") + }); ipt.select(); }); }); @@ -451,7 +466,7 @@ function modalFormLivraison_udpateCompo(modal, paniersTypes) { } function modalFormLivraison_addPanierTypeCompo(modal, datas) { - var table = $("
") + var table = $("
") .attr("ref", datas.ref) .attr("modal", modal.attr('id')); @@ -467,6 +482,7 @@ function modalFormLivraison_addPanierTypeCompo(modal, datas) { btnCopyCompo.click(function(e) { e.preventDefault(); $(this).blur(); + if(e.clientX==0 && e.clientY==0) return; modalFormLivraison_copyPanierTypeCompo(modal, table, $(this)); }) @@ -537,6 +553,7 @@ function modalFormLivraison_addPanierTypeCompoLegume(modal, panier, datas) { /*** INITIALIZE ***/ tdNom.dblclick(function(e) { + $(this).parent().addClass("editing"); var ipt = $("").val($(this).html()); ipt.attr('ref', $(this).attr('ref')) .attr('tarif_ref', $(this).attr('tarif_ref')) @@ -601,6 +618,7 @@ function modalFormLivraison_addPanierTypeCompoLegume(modal, panier, datas) { val = $(this).html(); unite = $(this).attr("unite"); if(unite in legumeTarifUnitesAccronymes) { + $(this).parent().addClass("editing"); var ipt = $(""); $(this).html("").append(ipt); initFloatInput(ipt); @@ -609,7 +627,7 @@ function modalFormLivraison_addPanierTypeCompoLegume(modal, panier, datas) { var td = $(this).parent(); val = parseFloat( $(this).val() ); td.html( number_format(val, 3) ); - td.parent().updateCompoLegumeMontant(); + td.parent().removeClass("editing").updateCompoLegumeMontant(true); }); ipt.select(); } @@ -640,7 +658,7 @@ function modalFormLivraison_loadPanierTypeCompoLegumeTarif(row, tarif_ref, tarif row.find("td.quantite_unite").html(unite); - row.updateCompoLegumeMontant(); + row.updateCompoLegumeMontant(false); } function modalFormLivraison_refreshPanierTypeCompoLegumeTarif(modal, panier, row) { @@ -690,7 +708,7 @@ function modalFormLivraison_copyPanierTypeCompo(modal, panier, btn) { } } -$.fn.updateCompoLegumeMontant = function() { +$.fn.updateCompoLegumeMontant = function(focus) { q = parseFloat($(this).find("td.quantite").html()); t = parseFloat($(this).find("td.tarif").html()); $(this).find("td.montant").html( number_format(q * t, 2)+" €" ); @@ -698,7 +716,8 @@ $.fn.updateCompoLegumeMontant = function() { // UPDATE TOTAL panier = $(this).parent().parent(); modalFormLivraison_updateMontantTotalPanier(panier); - panier.find(".btnAddLegume").focus(); + + if(focus) panier.find(".btnAddLegume").focus(); }; function modalFormLivraison_updateMontantTotalPanier(panier) { diff --git a/public_html_admin/templates/livraisons/livraison_form.tpl b/public_html_admin/templates/livraisons/livraison_form.tpl index 8ee2a16..333eeed 100644 --- a/public_html_admin/templates/livraisons/livraison_form.tpl +++ b/public_html_admin/templates/livraisons/livraison_form.tpl @@ -56,7 +56,7 @@ aucun panier
- +
diff --git a/public_html_admin/templates/livraisons/livraison_form_tab_paniers.tpl b/public_html_admin/templates/livraisons/livraison_form_tab_paniers.tpl index 0f5a208..67a7fae 100644 --- a/public_html_admin/templates/livraisons/livraison_form_tab_paniers.tpl +++ b/public_html_admin/templates/livraisons/livraison_form_tab_paniers.tpl @@ -1,5 +1,5 @@ {foreach from=$lieux item=lieu} -
TOTAL :
+
diff --git a/public_html_admin/templates/livraisons/livraison_modal_view_tab_compo.tpl b/public_html_admin/templates/livraisons/livraison_modal_view_tab_compo.tpl index d04f6b1..5272653 100644 --- a/public_html_admin/templates/livraisons/livraison_modal_view_tab_compo.tpl +++ b/public_html_admin/templates/livraisons/livraison_modal_view_tab_compo.tpl @@ -1,5 +1,5 @@ {foreach from=$infos.legumes item=p} -
{$lieu.nom}
+
diff --git a/public_html_admin/templates/livraisons/livraison_modal_view_tab_legumes.tpl b/public_html_admin/templates/livraisons/livraison_modal_view_tab_legumes.tpl index 701ce8f..627ce80 100644 --- a/public_html_admin/templates/livraisons/livraison_modal_view_tab_legumes.tpl +++ b/public_html_admin/templates/livraisons/livraison_modal_view_tab_legumes.tpl @@ -1,4 +1,4 @@ -
{$p.nom} (x{$p.nb})
+
diff --git a/public_html_admin/templates/livraisons/livraison_modal_view_tab_paniers.tpl b/public_html_admin/templates/livraisons/livraison_modal_view_tab_paniers.tpl index 6f253e9..06aa74a 100644 --- a/public_html_admin/templates/livraisons/livraison_modal_view_tab_paniers.tpl +++ b/public_html_admin/templates/livraisons/livraison_modal_view_tab_paniers.tpl @@ -1,5 +1,5 @@ {foreach from=$infos.paniers_eligibles item=lieu} -
TOTAL :
+
diff --git a/public_html_admin/templates/livraisons/prints/livraison_print_emargement.tpl b/public_html_admin/templates/livraisons/prints/livraison_print_emargement.tpl index 2e14b92..ef33641 100644 --- a/public_html_admin/templates/livraisons/prints/livraison_print_emargement.tpl +++ b/public_html_admin/templates/livraisons/prints/livraison_print_emargement.tpl @@ -35,11 +35,19 @@ - - - - - + + + + + {/foreach}
{$lieu.nom}
{$c.client_prenom} {$c.client_nom} {$c.client_tel}{$c.panier_type_nom}{$c.nb_paniers_livres} / {$c.nb_paniers}{$c.complement_du}{$c.complement}{$c.complement_regle} + {foreach from=$c.paniers item=p name=paniers} + {if !$smarty.foreach.paniers.first}
+ {/if}{$p.panier_type_nom} + {/foreach} +
+ {foreach from=$c.paniers item=p name=paniers} + {if !$smarty.foreach.paniers.first}
{/if}{$p.nb_paniers_livres} / {$p.nb_paniers} + {/foreach} +
{$c.complement_du_print}{$c.complement_print}{$c.complement_regle_print} {if !$c.present}ABSENT{/if}