From 933465ba12da1d366d3430f3941cb35c04ded712 Mon Sep 17 00:00:00 2001 From: engel <> Date: Wed, 5 Apr 2023 12:45:24 +0000 Subject: [PATCH 1/2] =?UTF-8?q?D=C3=A9but=20correction=20erreur=20(ticket?= =?UTF-8?q?=20be24e36cbf2a8ee61b4e430bce5f27936027824f)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FossilOrigin-Name: 14ff44b94850973a630d5a874d55a8d4ad9172a22bf2d44faaaad02989bfd7e9 --- www/admin/versements_activites.php | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/www/admin/versements_activites.php b/www/admin/versements_activites.php index 6545123..e98b0c3 100644 --- a/www/admin/versements_activites.php +++ b/www/admin/versements_activites.php @@ -36,21 +36,24 @@ else if (! isset($_SESSION['tauxSelectionnes'])) { */ // taux de réduction associés -if (isset($tarifsSelectionnes) && isset($_SESSION['comptesSelectionnes'])) +$tauxSelectionnes = array(); +if (isset($tarifsSelectionnes)) { - $tauxSelectionnes = array(); foreach ($tarifsSelectionnes as $idTarif) { $nomRadio = "taux_reduction_" . $idTarif; $tauxSelectionnes[$idTarif] = f("$nomRadio"); } +} +if (isset($_SESSION['comptesSelectionnes'])) +{ foreach ($_SESSION['comptesSelectionnes'] as $idCompte) { $nomRadio = "taux_reduction_" . $idCompte; $tauxSelectionnes[$idCompte] = f("$nomRadio"); } - $_SESSION['tauxSelectionnes'] = $tauxSelectionnes; } +$_SESSION['tauxSelectionnes'] = $tauxSelectionnes; $lesTarifs = array_map(fn($elem) : string => strpos($elem, '_') !== false ? substr($elem, 0, strpos($elem, '_')) : "", @@ -67,12 +70,15 @@ $_SESSION['lesVersements'] = $champsNom); // ajouter les versements sans tarif (tri par nom, compte, date) -$versementsSansTarif = Utils::getVersementsComptes($_SESSION['annee_recu'], - $_SESSION['comptesSelectionnes'], - $champsNom); -foreach ($versementsSansTarif as $versement) +if (isset($_SESSION['comptesSelectionnes'])) { - $_SESSION['lesVersements'][] = $versement; + $versementsSansTarif = Utils::getVersementsComptes($_SESSION['annee_recu'], + $_SESSION['comptesSelectionnes'], + $champsNom); + foreach ($versementsSansTarif as $versement) + { + $_SESSION['lesVersements'][] = $versement; + } } // préparation de l'affichage $tpl->assign('lesVersements', $_SESSION['lesVersements']); From 65fc86e30c9be408fe8def687952c107d0438c04 Mon Sep 17 00:00:00 2001 From: engel <> Date: Thu, 6 Apr 2023 16:16:46 +0000 Subject: [PATCH 2/2] Fin correction erreur (ticket be24e36cbf2a8ee61b4e430bce5f27936027824f) FossilOrigin-Name: 86c4720a628e5c8e7fa7b3fe0a012686bb0367a16a1b6526188028a22458677d --- lib/Utils.php | 40 ++++++++++++++++++++---------- www/admin/versements_activites.php | 11 ++------ 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/lib/Utils.php b/lib/Utils.php index 416cfbf..103c144 100644 --- a/lib/Utils.php +++ b/lib/Utils.php @@ -185,19 +185,18 @@ class Utils /** * @return versements correspondants à : - * @param $annee : année fiscale - * @param $tarifs : tarifs sélectionnés - * @param array $comptes : comptes associés aux tarifs - * @param array $champsNom : liste non vide des champs de nom/prénom + * @param $annee : année fiscale + * @param array $tarifsComptes : tarifs sélectionnés et comptes associés + * @param array $champsNom : liste non vide des champs de nom/prénom * @remarks tri par tarif, nom, compte, date */ public static function getVersementsTarifsComptes($annee, - $tarifs, - $comptes, + $tarifsComptes, $champsNom) { $db = DB::getInstance(); $tri = Utils::combinerTri($champsNom); + $condition = Utils::combinerTarifsComptes($tarifsComptes); $sql = sprintf( 'SELECT services_fees.id as idTarif, @@ -220,17 +219,13 @@ class Utils INNER JOIN acc_accounts ON acc_transactions_lines.id_account = acc_accounts.id WHERE - (strftime(%s, acc_transactions.date) = "%d" + (strftime("%%Y", acc_transactions.date) = "%d" AND - services_fees.%s - AND - acc_accounts.%s + %s ) ORDER by services_fees.id, %s, acc_accounts.code, acc_transactions.date', - '"%Y"', $annee, - $db->where('id', 'in', $tarifs), - $db->where('id', 'in', $comptes), + $condition, $tri ); return $db->get($sql); @@ -371,6 +366,25 @@ class Utils return $tri; } + /** + * combiner chaque tarif avec le numéro de compte associé + */ + private static function combinerTarifsComptes($tarifsComptes) + { + $condition = '('; + $nb = 0; + foreach ($tarifsComptes as $elem) + { + $tarif = substr($elem, 0, strpos($elem, '_')); + $compte = substr($elem, 1 + strpos($elem, '_')); + if ($nb > 0) { $condition .= ' OR '; } + $condition .= "(services_fees.id = '$tarif' AND acc_accounts.id = '$compte')"; + ++$nb; + } + $condition .= ')'; + return $condition; + } + /** * @return liste des années fiscales */ diff --git a/www/admin/versements_activites.php b/www/admin/versements_activites.php index e98b0c3..9e8b5f2 100644 --- a/www/admin/versements_activites.php +++ b/www/admin/versements_activites.php @@ -55,18 +55,11 @@ if (isset($_SESSION['comptesSelectionnes'])) } $_SESSION['tauxSelectionnes'] = $tauxSelectionnes; -$lesTarifs = array_map(fn($elem) : string => - strpos($elem, '_') !== false ? substr($elem, 0, strpos($elem, '_')) : "", - array_keys($_SESSION['tauxSelectionnes'])); -$lesComptes = array_map(fn($elem) : string => - strpos($elem, '_') !== false ? substr($elem, 1 + strpos($elem, '_')) : "", - array_keys($_SESSION['tauxSelectionnes'])); - +# versements des tarifs sélectionnées et de leur compte associé $_SESSION['lesVersements'] = Utils::getVersementsTarifsComptes( $_SESSION['annee_recu'], - $lesTarifs, - $lesComptes, + array_keys($_SESSION['tauxSelectionnes']), $champsNom); // ajouter les versements sans tarif (tri par nom, compte, date)