Fin correction erreur (ticket be24e36cbf2a8ee61b4e430bce5f27936027824f)
FossilOrigin-Name: 86c4720a628e5c8e7fa7b3fe0a012686bb0367a16a1b6526188028a22458677d
This commit is contained in:
parent
933465ba12
commit
65fc86e30c
|
@ -186,18 +186,17 @@ 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 $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
|
||||
*/
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue