Fix issue : récupération du bilan

This commit is contained in:
Michael RICOIS 2016-05-13 17:44:54 +02:00
parent a3372d2dd3
commit 49969bf6e2

View File

@ -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='&euro;'; 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