restructuration et correction inexactitude

FossilOrigin-Name: 43b3c9482d218f8e655a0fd54931824b1f51c9c40a767c637a6e7f5202f4944d
This commit is contained in:
engel 2023-04-07 09:38:25 +00:00
parent aa3b56d066
commit 8e19aaf526
2 changed files with 22 additions and 11 deletions

View File

@ -185,18 +185,20 @@ class Utils
/** /**
* @return versements correspondants à : * @return versements correspondants à :
* @param $annee : année fiscale * @param $annee : année fiscale
* @param array $tarifsComptes : tarifs sélectionnés et comptes associés * @param array $tarifs : tarifs sélectionnés
* @param array $champsNom : liste non vide des champs de nom/prénom * @param array $comptes : comptes associés aux tarifs
* @param array $champsNom : liste non vide des champs de nom/prénom
* @remarks tri par tarif, nom, compte, date * @remarks tri par tarif, nom, compte, date
*/ */
public static function getVersementsTarifsComptes($annee, public static function getVersementsTarifsComptes($annee,
$tarifsComptes, $tarifs,
$comptes,
$champsNom) $champsNom)
{ {
$db = DB::getInstance(); $db = DB::getInstance();
$tri = Utils::combinerTri($champsNom); $tri = Utils::combinerTri($champsNom);
$condition = Utils::combinerTarifsComptes($tarifsComptes); $condition = Utils::combinerTarifsComptes($tarifs, $comptes);
$sql = sprintf( $sql = sprintf(
'SELECT 'SELECT
services_fees.id as idTarif, services_fees.id as idTarif,
@ -369,16 +371,17 @@ class Utils
/** /**
* combiner chaque tarif avec le numéro de compte associé * combiner chaque tarif avec le numéro de compte associé
*/ */
private static function combinerTarifsComptes($tarifsComptes) private static function combinerTarifsComptes($tarifs, $comptes)
{ {
$condition = '('; $condition = '(';
$lesCond = array_map(fn($e1, $e2) : string =>
"(services_fees.id = '$e1' AND acc_accounts.id = '$e2')",
$tarifs, $comptes);
$nb = 0; $nb = 0;
foreach ($tarifsComptes as $elem) foreach ($lesCond as $cond)
{ {
$tarif = substr($elem, 0, strpos($elem, '_'));
$compte = substr($elem, 1 + strpos($elem, '_'));
if ($nb > 0) { $condition .= ' OR '; } if ($nb > 0) { $condition .= ' OR '; }
$condition .= "(services_fees.id = '$tarif' AND acc_accounts.id = '$compte')"; $condition .= $cond;
++$nb; ++$nb;
} }
$condition .= ')'; $condition .= ')';

View File

@ -55,11 +55,19 @@ if (isset($_SESSION['comptesSelectionnes']))
} }
$_SESSION['tauxSelectionnes'] = $tauxSelectionnes; $_SESSION['tauxSelectionnes'] = $tauxSelectionnes;
$lesTarifs = array_map(fn($elem) : string =>
strpos($elem, '_') !== false ? substr($elem, 0, strpos($elem, '_')) : "",
$tarifsSelectionnes);
$lesComptes = array_map(fn($elem) : string =>
strpos($elem, '_') !== false ? substr($elem, 1 + strpos($elem, '_')) : "",
$tarifsSelectionnes);
# versements des tarifs sélectionnées et de leur compte associé # versements des tarifs sélectionnées et de leur compte associé
$_SESSION['lesVersements'] = $_SESSION['lesVersements'] =
Utils::getVersementsTarifsComptes( Utils::getVersementsTarifsComptes(
$_SESSION['annee_recu'], $_SESSION['annee_recu'],
array_keys($_SESSION['tauxSelectionnes']), $lesTarifs,
$lesComptes,
$champsNom); $champsNom);
// ajouter les versements sans tarif (tri par nom, compte, date) // ajouter les versements sans tarif (tri par nom, compte, date)