diff --git a/library/Metier/Partenaires/MBilans.php b/library/Metier/Partenaires/MBilans.php index 46776ade..d93cc319 100644 --- a/library/Metier/Partenaires/MBilans.php +++ b/library/Metier/Partenaires/MBilans.php @@ -426,7 +426,8 @@ class Metier_Partenaires_MBilans } $classWDate = new WDate(); - $millesimeDB = $classWDate->dateT('d/m/Y', 'Ymd', $millesime); + $clotureDate = new Zend_Date($millesime, 'dd/MM/yyyy'); + $clotureDateSql = $clotureDate->toString('yyyyMMdd'); if ($accesPartenaire) { // On ne veut pas de bilans "Téléchargés" directement sur Internet $strSansBilansWeb=' AND partenaire<>7 '; @@ -438,7 +439,7 @@ class Metier_Partenaires_MBilans $ret = $this->iDb->select('jo.bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire, id, confidentiel, dateInsert', - "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB' $strSansBilansWeb", false, MYSQL_ASSOC); + "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$clotureDateSql' $strSansBilansWeb", false, MYSQL_ASSOC); if ( $accesPartenaire ) { $iGreffe = new Metier_Partenaires_MGreffes($this->iDb); @@ -480,10 +481,12 @@ class Metier_Partenaires_MBilans 'partenaire' => $tabBilan['SOURCE'], ); if (!$this->iDb->insert('jo.bilans', $tabInsert, true)) { - $this->iDb->update('jo.bilans', $tabInsert, "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB'"); + $this->iDb->update('jo.bilans', $tabInsert, "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$clotureDateSql'"); } - $ret = $this->iDb->select('jo.bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire, id, confidentiel, dateInsert', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB'", true); + $ret = $this->iDb->select('jo.bilans', + 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire, id, confidentiel, dateInsert', + "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$clotureDateSql'", true); if (count($ret) > 0) { $bilan = $ret[0]; } @@ -491,14 +494,14 @@ class Metier_Partenaires_MBilans } } + // --- Selection du premier bilan if (count($ret) > 0) { $bilan = $ret[0]; } $tabBilan = $tabBilanPre = $bilanPre = array(); - if ($bilan !== null) - { + if ($bilan !== null) { $tabBilan['SIREN'] = $this->siren; $tabBilan['DATE_FRAICHE_BILAN'] = $bilan['dateProvPartenaire']; // SSAAMMJJ $tabBilan['DATE_CLOTURE'] = $bilan['dateExercice']; // SSAAMMJJ @@ -514,7 +517,7 @@ class Metier_Partenaires_MBilans $tabBilan['DATE_BILAN_SD'] = $bilan['dateInsert']; $tabBilan['TOP_CONFIDENTIEL'] = $bilan['confidentiel']; - // Devise et Unité + // --- Devise et Unité if ($bilan['monnaie']=='EUR') $monnaie='€'; else $monnaie=$bilan['monnaie']; switch (strtoupper($bilan['unite'])) { case 'K': $unite='K'; break; @@ -550,8 +553,7 @@ class Metier_Partenaires_MBilans } /** Calcul des valeures NET si l'information est absente en base **/ - if ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') - { + if ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') { if (!isset($tabBilan['AA2']) && isset($tabBilan['AA'])) $tabBilan['AA2']=$tabBilan['AA']; if (!isset($tabBilan['AC1']) && (isset($tabBilan['AB'])||isset($tabBilan['AC']))) $tabBilan['AC1']=$tabBilan['AB']-$tabBilan['AC']; if (!isset($tabBilan['AE1']) && (isset($tabBilan['AD'])||isset($tabBilan['AE']))) $tabBilan['AE1']=$tabBilan['AD']-$tabBilan['AE']; @@ -592,8 +594,7 @@ class Metier_Partenaires_MBilans if (!isset($tabBilan['1A1']) && (isset($tabBilan['CO'])||isset($tabBilan['1A']))) $tabBilan['1A1']=$tabBilan['CO']-$tabBilan['1A']; } - elseif ($tabBilan['CONSOLIDE']=='S') - { + elseif ($tabBilan['CONSOLIDE']=='S') { //if (!isset($tabBilan['AC1']) && (isset($tabBilan['AB'])||isset($tabBilan['AC']))) $tabBilan['AC1']=$tabBilan['AB']-$tabBilan['AC']; if (!isset($tabBilan['013']) && (isset($tabBilan['010'])||isset($tabBilan['012']))) $tabBilan['013']=$tabBilan['010']-$tabBilan['012']; if (!isset($tabBilan['017']) && (isset($tabBilan['014'])||isset($tabBilan['016']))) $tabBilan['017']=$tabBilan['014']-$tabBilan['016']; @@ -613,15 +614,22 @@ class Metier_Partenaires_MBilans if (!isset($tabBilan['113']) && (isset($tabBilan['110'])||isset($tabBilan['112']))) $tabBilan['113']=$tabBilan['110']-$tabBilan['112']; } - /** Y a t'il suffisament d'informations sur le bilan précédent **/ + // Bilan précédent existe ? if ( $bilan['dateExercicePre']*1==0 || $bilan['dureeExercicePre']*1==0 || ( ($tabBilan['FL1']*1==0 || $tabBilan['EE1']*1==0) && ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') ) // Réel Normal ou Consolidé || ( ($tabBilan['NA3']*1==0 || $tabBilan['NP3']*1==0) && ($tabBilan['CONSOLIDE']=='A' || $tabBilan['CONSOLIDE']=='B') ) // Banque ou Assurance || ( ($tabBilan['N15']*1==0 || $tabBilan['N32']*1==0) && $tabBilan['CONSOLIDE']=='S' ) // Réel Simplifié ) { - /** Il n'y a aucune information sur le bilan précédent **/ - $ret=$this->iDb->select('jo.bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice<'$millesimeDB' ORDER BY dateExercice DESC LIMIT 0,1", true); + $cloturePreDate = $clotureDate->subMonth($bilan['dureeExercice']); + $cloturePreDateSql = $cloturePreDate->toString('yyyyMMdd'); + + // --- Recherche des infos du bilan précédent + $ret = $this->iDb->select('jo.bilans', + 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', + "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$cloturePreDateSql' ORDER BY dateExercice DESC LIMIT 0,1", true); + if (count($ret) > 0) { + $bilanPre=$ret[0]; $tabBilan['DATE_CLOTURE_PRE'] = $bilanPre['dateExercice']; // SSAAMMJJ $tabBilan['DUREE_MOIS_PRE'] = $bilanPre['dureeExercice']; @@ -645,11 +653,11 @@ class Metier_Partenaires_MBilans $tabTmp2=explode('=', $strTmp); if (isset($tabTmp2[1])) { if ( ($unite=='K' || $unite=='M') && !in_array($tabTmp2[0], array( - 'YP', 'YP1', '376', // Effectifs 2033 et 2050 - 'M2G', 'M2H', // Autres effectifs - 'ZK', 'ZK1', // Taux - 'IJ', 'JG', 'JH', 'JJ', 'ZR', // pour holding/ste mere - 'XP' // Numero de centre de gestion agréé + 'YP', 'YP1', '376', // Effectifs 2033 et 2050 + 'M2G', 'M2H', // Autres effectifs + 'ZK', 'ZK1', // Taux + 'IJ', 'JG', 'JH', 'JJ', 'ZR', // pour holding/ste mere + 'XP' // Numero de centre de gestion agréé ) ) ) { if ($unite=='K') { $tabBilanPre[$tabTmp2[0]]=$tabTmp2[1]*1000; @@ -662,9 +670,8 @@ class Metier_Partenaires_MBilans } } - /** Calcul des valeures NET N-1 si l'information est absente du bilan N-1 en base **/ - if ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') - { + // --- Calcul des valeures NET N-1 si l'information est absente du bilan N-1 en base + if ($tabBilan['CONSOLIDE']=='N' || $tabBilan['CONSOLIDE']=='C') { if (!isset($tabBilanPre['AA2']) && isset($tabBilanPre['AA'])) $tabBilanPre['AA2']=$tabBilanPre['AA']; if (!isset($tabBilanPre['AC1']) && (isset($tabBilanPre['AB'])||isset($tabBilanPre['AC']))) $tabBilanPre['AC1']=$tabBilanPre['AB']-$tabBilanPre['AC']; if (!isset($tabBilanPre['AE1']) && (isset($tabBilanPre['AD'])||isset($tabBilanPre['AE']))) $tabBilanPre['AE1']=$tabBilanPre['AD']-$tabBilanPre['AE']; @@ -852,10 +859,8 @@ class Metier_Partenaires_MBilans if (!isset($tabBilan['A21']) && isset($tabBilanPre['A2'])) $tabBilan['A21']=$tabBilanPre['A2']; if (!isset($tabBilan['A31']) && isset($tabBilanPre['A3'])) $tabBilan['A31']=$tabBilanPre['A3']; if (!isset($tabBilan['A41']) && isset($tabBilanPre['A4'])) $tabBilan['A41']=$tabBilanPre['A4']; - } - elseif ($tabBilan['CONSOLIDE']=='S') - { + elseif ($tabBilan['CONSOLIDE']=='S') { // Calcul des chiffres net N-1 si absent 2033 if (!isset($tabBilanPre['013']) && (isset($tabBilanPre['010']) || isset($tabBilanPre['012']))) $tabBilanPre['013']=$tabBilanPre['010']-$tabBilanPre['012']; if (!isset($tabBilanPre['017']) && (isset($tabBilanPre['014']) || isset($tabBilanPre['016']))) $tabBilanPre['017']=$tabBilanPre['014']-$tabBilanPre['016']; @@ -938,8 +943,7 @@ class Metier_Partenaires_MBilans if (!isset($tabBilan['N58']) && isset($tabBilanPre['306'])) $tabBilan['N58']=$tabBilanPre['306']; if (!isset($tabBilan['N59']) && isset($tabBilanPre['310'])) $tabBilan['N59']=$tabBilanPre['310']; } - elseif ($tabBilan['CONSOLIDE']=='A' || $tabBilan['CONSOLIDE']=='B') - { + elseif ($tabBilan['CONSOLIDE']=='A' || $tabBilan['CONSOLIDE']=='B') { // BANQUES if (!isset($tabBilan['NA1']) && isset($tabBilanPre['AA1'])) $tabBilan['NA1']=$tabBilanPre['AA1']; if (!isset($tabBilan['NA2']) && isset($tabBilanPre['AA2'])) $tabBilan['NA2']=$tabBilanPre['AA2']; @@ -959,6 +963,7 @@ class Metier_Partenaires_MBilans // ASSURANCE if (!isset($tabBilan['NR4']) && isset($tabBilanPre['AR4'])) $tabBilan['AR4']=$tabBilanPre['AR4']; } + } // --- Fin traitement bilan précédent } //Put Result in memory