batch/bin/surveillanceBilanSite.php
2015-09-04 12:56:16 +00:00

553 lines
27 KiB
PHP

#!/usr/bin/php
<?php
error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE ^ E_STRICT);
include_once(__DIR__.'/../includes/auto_prepend.php');
function wsLog($service, $siret='', $ref='') {}
function number_format2($nombre,$decimales,$sepDec,$sepMil,$unite='',$signe='') {
if (round($nombre,$decimales)==round($nombre)) $decimales=0;
if ($signe=='+') {
if ($nombre>0)
return trim('+ '.number_format(abs($nombre),$decimales,$sepDec,$sepMil).' '.$unite);
elseif ($nombre<0)
return trim('- '.number_format(abs($nombre),$decimales,$sepDec,$sepMil).' '.$unite);
else
return trim(number_format(abs($nombre),$decimales,$sepDec,$sepMil).' '.$unite);
} elseif ($signe=='!') return trim(number_format(abs($nombre),$decimales,$sepDec,$sepMil).' '.$unite);
else return trim(number_format($nombre,$decimales,$sepDec,$sepMil).' '.$unite);
}
define('DATE_HEURE_SCRIPT', date('Ymd_His'));
$libTypeBilan=array('N'=>'Réel Normal (2050)',
'S'=>'Réel Simplifié (2033)',
'C'=>'Comptes Consolidés',
'A'=>'Bilan de Cie d\'Assurance',
'B'=>'Bilan de Banque',
);
/** @todo
**/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(FWK_PATH.'pdf/html2pdf.class.php');
include_once(FWK_PATH.'mail/sendMail.php');
$modeTest=$envoiGroupe=$envoiGroupePre=false;
$ignoreDateDerExec=$retroActivite=false;
$tableSurveillance='surveillances_site';
//$modeTest=true;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Envoi des messages de surveillance Bilan par email (site et WS uniquement).
Options :
-i Ne pas exécuter en réel (pas de MAJ des infos d'exécution et envoi des mails à lenaoury@gmail.com...)
";
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'i':
//$envoiGroupe=true;
$modeTest=true;
$tableSurveillance='surveillances_site_old';
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
$iDb=new WDB('jo');
$iDb2=new WDB('sdv1');
//$iWs=new WsEntreprise();
$mBil=new MBilans(0);
$nbUtilisateurs=$iDb2->select('utilisateurs u, clients c', 'u.id, u.idClient, LOWER(u.login) AS login, u.password, u.email, u.formatMail, u.lienExtranetMail, u.listeEven', "u.idClient=c.id AND u.actif=1 AND u.deleted=0 AND c.actif='Oui'", true, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbUtilisateurs utilisateurs habilités à recevoir des surveillances...".EOL;
$tabFormat=$tabLienEx=$tabLstEve=$tabHash=array();
while ($uti=$iDb2->fetch(MYSQL_ASSOC)) {
switch ($uti['formatMail']) {
case 'txt2': // MAIL au format texte, 1 mail par envoi
case 'csv': // MAIL au format CSV, 1 mail par envoi
case 'txt1': // MAIL au format texte, 1 mail par annonce (format par défaut)
case 'pdf1': // MAIL au format PDF, 1 mail par envoi
$tabFormat['_'.$uti['login']]=$uti['formatMail'];
break;
default:
$tabFormat['_'.$uti['login']]='txt1';
break;
}
$tabLienEx['_'.$uti['login']]=$uti['lienExtranetMail'];
$tabLstEve['_'.$uti['login']]=explode(';',trim($uti['listeEven']));
sort($tabLstEve['_'.$uti['login']]);
if (count($tabLstEve['_'.$uti['login']])==1 && $tabLstEve['_'.$uti['login']][0]=='')
$tabLstEve['_'.$uti['login']]=array();
$tabHash['_'.$uti['login']]=md5($uti['login'].'|'.$uti['password']);
}
//sort($tabFormat);
//print_r($tabFormat);die();
$iBodacc=new MBodacc();
$iInsee=new MInsee();
global $tva, $tabFormules, $mBil, $tabBilan, $efftr;
echo date ('Y/m/d - H:i:s')." - Début du traitement d'envoi des surveillances Bilans.\n";
$message=$strIdAnn='';
$queryParisot="(SELECT DATE(MAX(dateDerEnvoi)) FROM surveillances_site WHERE source='bilans' AND `login`='parisot1')";
//$queryParisot='2011-06-29';
$query ="
( /** Requete SQL pour la collecte **/
SELECT b.id, b.siren, LOWER(TRIM(s.login)) AS login, LOWER(TRIM(s.email)) AS email, s.ref, s.dateAjout, s.dateDerEnvoi, 'bilans_deposes' AS source, b.dateExercice, b.dureeExercice, b.monnaie, b.chiffreAffaire, b.dateProvPartenaire, 'U' AS unite, b.dateInsert, '' AS typeBilan, '' AS postes
FROM bilans_deposes b, surveillances_site s
WHERE s.source='bilans' AND s.siren>1000 AND s.siren=b.siren AND b.dateInsert>s.dateAjout AND DATE(b.dateInsert)>DATE(s.dateDerEnvoi) AND s.dateSuppr='0000-00-00' AND ABS(DATEDIFF(b.dateInsert,b.dateExercice))<400 AND b.dateInsert>'2010-05-23 00:00:00'
GROUP BY s.login, s.email, s.siren, s.ref, b.dateExercice
ORDER BY s.login ASC, s.email ASC, s.siren ASC, s.ref ASC, b.dateExercice ASC
) UNION (
/** Requete SQL pour le Bodacc **/
SELECT b.id, b.siren, LOWER(TRIM(s.login)) AS login, LOWER(TRIM(s.email)) AS email, s.ref, s.dateAjout, s.dateDerEnvoi, 'bilans' AS source, b.dateExercice, b.dureeExercice, b.monnaie, '' AS chiffreAffaire, b.dateProvPartenaire, b.unite, b.dateInsert, b.typeBilan, b.postes
FROM bilans b, surveillances_site s
WHERE s.source='bilans' AND s.siren>1000 AND s.siren=b.siren AND b.dateInsert>s.dateAjout AND DATE(b.dateInsert)>DATE(s.dateDerEnvoi) AND s.dateSuppr='0000-00-00'AND ABS(DATEDIFF(b.dateInsert,b.dateExercice))<400 AND b.dateInsert>'2010-05-23 00:00:00'
GROUP BY s.login, s.email, s.siren, s.ref, b.dateExercice
ORDER BY s.login ASC, s.email ASC, s.siren ASC, s.ref ASC, b.dateExercice ASC
) UNION (
SELECT b.id, b.siren, LOWER(TRIM(s.login)) AS login, LOWER(TRIM(s.email)) AS email, s.ref, s.dateAjout, s.dateDerEnvoi, 'bilans' AS source, b.dateExercice, b.dureeExercice, b.monnaie, '' AS chiffreAffaire, b.dateProvPartenaire, b.unite, b.dateInsert, b.typeBilan, b.postes
FROM bilans b, surveillances_site s
WHERE s.source='bilans' AND s.siren>1000 AND s.siren=b.siren AND s.login='parisot1' AND s.dateAjout>=$queryParisot
AND b.dateExercice=(SELECT MAX(b2.dateExercice) FROM bilans b2 WHERE b2.siren=b.siren)
GROUP BY s.login, s.email, s.siren, s.ref
ORDER BY s.login ASC, s.email ASC, s.siren ASC, s.ref ASC, b.dateExercice DESC
) ORDER BY login ASC, email ASC, siren ASC, ref ASC, dateExercice ASC";
echo date ('Y/m/d - H:i:s')." - $query;".EOL;
$res=$iDb->query($query);
$nbAnnonces=mysql_num_rows($res);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAnnonces surveillances Bilans à traiter...".EOL;
$emailPre=$loginPre=$sirenPre=false;
//die();
while ($bilan=$iDb->fetch(MYSQL_ASSOC)) {
// if ($emailPre==$bilan[email] && $loginPre==$bilan['login'] && $sirenPre==$bilan['siren']) continue;
$fp2=fopen(MAIL_PJ_PATH."surv_bilans_".date('Y-m-d').'.csv', 'a');
fwrite($fp2, implode("\"\t\"", $bilan));
fclose($fp2);
$tabIdentite=$iInsee->getIdentiteLight($bilan['siren']);
$email=$bilan['email'];
$loginLu=$bilan['login'];
if (!isset($tabFormat['_'.$loginLu])) {
echo date('Y/m/d H:i:s').' - Bilan n°'.$bilan['id']." non traitée pour cause de format indéfini pour $loginLu, $email (".$bilan['siren'].' - '.$tabIdentite['Nom'].")\n";
/** Avant de faire un continue, on initialise les variables précédentes obligatoires **/
/*$emailPre=$email;
$loginPre=$loginLu;
$envoiGroupePre=$envoiGroupe;
$conversionPdfPre=$conversionPdf;
$conversionCsvPre=$conversionCsv;*/
continue;
}
$conversionPdf=$conversionCsv=false;
if ($tabFormat['_'.$loginLu]=='txt2') $envoiGroupe=true;
elseif ($tabFormat['_'.$loginLu]=='csv') { $envoiGroupe=true; $conversionCsv=true; }
elseif ($tabFormat['_'.$loginLu]=='txt1') $envoiGroupe=false;
elseif ($tabFormat['_'.$loginLu]=='pdf1') { $envoiGroupe=true; $conversionPdf=true; }
else die(date('Y/m/d H:i:s')." - Erreur impossible : Format '".$tabFormat['_'.$loginLu]."' non géré pour $loginLu !");
echo date('Y/m/d H:i:s').' - Bilan n°'.$bilan['id']." à traiter pour $loginLu, $email (".$bilan['siren'].' - '.$tabIdentite['Nom'].")\n";
/*
if (count($tabLstEve['_'.$loginLu])>0) { // L'utilisateur filtre ses évènements
$even=$bilan['insEVE'];
switch ($even) {
case 'M0C': $even2=0130; break;
case 'M0F': $even2=0430; break;
case 'M0R': $even2=0145; break;
case 'M00': $even2=0780; break;
case 'MAS': $even2=0661; break;
case 'MAC': $even2=0661; break;
case 'MSA': $even2=0780; break;
case 'MPF': $even2=0999; break;
default: $even2=$even*1; break;
}
$evenTrouve=false;
if (in_array($even2, $tabLstEve['_'.$loginLu]))
$evenTrouve=true;
if (!$evenTrouve) {
echo date('Y/m/d H:i:s').' - Annonce n°'.$bilan['id'].' - Evènements hors périmètre client : '.$even.'/'.$even2."\n";
if (!$modeTest) {
$where="login='$loginLu' AND source='score' AND siren='".$bilan['siren']."'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('Ymd').'235959'), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$bilan['id']. ", login=$loginLu, mail=$email, siren=".$bilan['siren'].', rsoc='.$tabIdentite['Nom']." ($where) !\n";
}
continue; // Aucun evènement souhaité par l'utilisateur n'est présent dans cette annonce
} else echo date('Y/m/d H:i:s').' - Annonce n°'.$bilan['id']." - Evenements '$even/$even2' OK pour $loginLu, $email (".$bilan['siren'].' - '.$tabIdentite['Nom'].")\n";
} else */echo date('Y/m/d H:i:s').' - Bilan n°'.$bilan['id']." - Pas de filtre evenements pour $loginLu, $email (".$bilan['siren'].' - '.$tabIdentite['Nom'].")\n";
echo "Test $envoiGroupe vs $envoiGroupePre / Login $loginLu vs $loginPre / Email $email vs $emailPre\n";
//$saisie = trim(strtoupper(fgets(STDIN)));
if ( ($envoiGroupe||$envoiGroupePre) && // Envoi groupé demandé ET
( ($loginPre!=false && $loginLu!=$loginPre) || // Login différent OU
($emailPre!=false && $email!=$emailPre) ) // Email différent
) { /** Login souhaitant un seul email pour toutes les annonces **/
$emailEnvoi=$emailPre;
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
if ($conversionPdfPre) {
$html2pdf = new HTML2PDF('P','A4', 'fr');
$messagePdf='<page>'.str_replace("---------------------------------------------------------------------------",'</page><page>', strtr($message, array("\r\n"=>'<br/>'))).'</page>';
$html2pdf->WriteHTML($messagePdf);
$content=$html2pdf->Output('annonces.pdf', true);
$fichierPdf=MAIL_PJ_PATH."surv_bilans_$loginPre".'_'.date('Y-m-d').".pdf";
$fp2=fopen($fichierPdf, 'w');
fwrite($fp2, $content);
fclose($fp2);
$tabAttached=array($fichierPdf);
} elseif ($conversionCsvPre) {
$tabAttached=array($fichierCsvPre);
} else
$tabAttached=array();
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance Bilans", $message, '', $tabAttached)) {
if (!$modeTest) {
if ($envoiGroupe) $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='bilans' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$loginPre' /*AND email='$emailPre'*/ AND source='bilans' AND siren='$siren'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$bilan['id']. ", login=$loginPre, mail=$emailPre, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Le bilan n°$idAnn a été envoyé à $emailPre.";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Bilans", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les bilans n°$strIdAnn ont été envoyées à $emailPre.\n";
} else {
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Le bilan n°$idAnn n'a pas été envoyé à $emailPre !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Bilans - Echec Envoi !", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les bilans n°$strIdAnn n'ont pas été envoyées à $emailPre.\n";
}
// Remise à banc du message
$message=$strIdAnn='';
$tabSiren=array();
}
// GESTION DE L'ANNONCE COURANTE
$siren=$bilan['siren'];
$sirenAff=implode(' ', str_split($siren,3));
//$nicAff=$bilan['nicEven'];
$rs=substr($tabIdentite['Nom'],0,30).'...';
//$even=$bilan['insEVE'];
$login=$bilan['login'];
$idAnn=$bilan['id'];
if ($envoiGroupe==false)
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
else {
if ($emailPre==false && $loginPre==false) {
// Première annonce du mail
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
$strIdAnn="$idAnn ";
$tabSiren=array($siren);
} else {
// Nième annonce du mail
$message.= "Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
$strIdAnn.="$idAnn ";
$tabSiren[]=$siren;
}
}
if (trim($bilan['ref'])<>'') {
$message.='Votre référence : '.trim($bilan['ref'])."\r\n";
$message."\r\n";
$rs=substr($tabIdentite['Nom'],0,30).'... ('.trim($bilan['ref']).')';
}
$dateExercice=$bilan['dateExercice'];
$unite=$bilan['unite'];
$devise=$bilan['monnaie'];
$ca=$rcai=$sin=$rn=$fp=$totb='';
$typeBilan='';
if ($bilan['source']=='bilans_deposes') {
$strSource=" AND typeBilan IN ('S','N') ";
$ca=$bilan['chiffreAffaire'];
$rcai=$rn=$fp=$totb='';
} else {
$typeBilan=$bilan['typeBilan'];
$tabPostes=array();
$tabTmp=explode(';', $bilan['postes']);
foreach($tabTmp as $strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1]))
$tabPostes[$tabTmp2[0]]=$tabTmp2[1];
}
if ($typeBilan=='S') $tabPostes=$mBil->bilanSimplifie2Normal($tabPostes);
if ($typeBilan=='S' || $typeBilan=='N' || $typeBilan=='C') {
$ca=$tabPostes['FL']; // Chiffre d'Affaires
$rcai=$tabPostes['GW']; // Résultat Courant avant Impot
$rn=$tabPostes['HN']; // Résultat Net
$fp=$tabPostes['DL']; // Situation nette Fonds propres
$totb=$tabPostes['EE']; // Total bilan
$effb=$tabPostes['YP']; // Effectif
} elseif ($typeBilan=='A') {
$ca=$tabPostes['AR1']; // Primes - cotisations acquises
$sin=$tabPostes['AR2']; // Charges des sinistres
$rn=$tabPostes['AR4']; // Résultat Net
$fp=$tabPostes['AP1']; // Situation nette Fonds propres
$totb=$tabPostes['AA2'];// Total bilan
} elseif ($typeBilan=='B') {
$ca=$tabPostes['BR1']; // Intérêts et produits assimilés
$sin=$tabPostes['BR2']; // Intérêts et charges assimilées
$rn=$tabPostes['BR3']; // Résultat Net
$fp=$tabPostes['BP3']; // Capital souscrit (Situation nette Fonds propres)
$totb=$tabPostes['BA3'];// Total bilan
}
if ($typeBilan=='S' || $typeBilan=='N') $strSource=" AND typeBilan IN ('S','N') ";
else $strSource=" AND typeBilan='$typeBilan' ";
}
/** Informations du bilan Précédent **/
$bilanPre=$iDb2->select('jo.bilans',
'dateExercice, dureeExercice, monnaie, unite, typeBilan, postes',
"siren=$siren AND dateExercice<$dateExercice $strSource ORDER BY dateExercice DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (isset($bilanPre[0])) {
$bilanPre=$bilanPre[0];
$dateExercicePre=$bilanPre['dateExercice'];
$unitePre=$bilanPre['unite'];
$devisePre=$bilanPre['monnaie'];
$caPre=$rcaiPre=$sinPre=$rnPre=$fpPre=$totbPre='';
$typeBilanPre=$bilanPre['typeBilan'];
$tabPostesPre=array();
$tabTmp=explode(';', $bilanPre['postes']);
foreach($tabTmp as $strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1]))
$tabPostesPre[$tabTmp2[0]]=$tabTmp2[1];
}
if ($typeBilanPre=='S') $typeBilanPre=$mBil->bilanSimplifie2Normal($typeBilanPre);
if ($typeBilanPre=='S' || $typeBilanPre=='N' || $typeBilanPre=='C') {
$caPre=$tabPostesPre['FL']; // Chiffre d'Affaires
$rcaiPre=$tabPostesPre['GW']; // Résultat Courant avant Impot
$rnPre=$tabPostesPre['HN']; // Résultat Net
$fpPre=$tabPostesPre['DL']; // Situation nette Fonds propres
$totbPre=$tabPostesPre['EE']; // Total bilan
$effbPre=$tabPostesPre['YP']; // Effectif
} elseif ($typeBilanPre=='A') {
$caPre=$tabPostesPre['AR1']; // Primes - cotisations acquises
$sinPre=$tabPostesPre['AR2']; // Charges des sinistres
$rnPre=$tabPostesPre['AR4']; // Résultat Net
$fpPre=$tabPostesPre['AP1']; // Situation nette Fonds propres
$totbPre=$tabPostesPre['AA2'];// Total bilan
} elseif ($typeBilanPre=='B') {
$caPre=$tabPostesPre['BR1']; // Intérêts et produits assimilés
$sinPre=$tabPostesPre['BR2']; // Intérêts et charges assimilées
$rnPre=$tabPostesPre['BR3']; // Résultat Net
$fpPre=$tabPostesPre['BP3']; // Capital souscrit (Situation nette Fonds propres)
$totbPre=$tabPostesPre['BA3'];// Total bilan
}
if ($unitePre=='' || $unitePre=='u' || $unitePre=='U') { $strDevisePre=$devisePre; $coefPre=1; }
elseif ($unitePre=='k' || $unitePre=='K') { $strDevisePre="K$devisePre"; $coefPre=1000; }
elseif ($unitePre=='m' || $unitePre=='M') { $strDevisePre="M$devisePre"; $coefPre=1000000; }
else { $strDevisePre=''; $coefPre=0; }
if ($bilanPre['dureeExercice']*1>0)
$strDureePre=' (durée : '.$bilanPre['dureeExercice'].' mois)';
else
$strDureePre='';
} // FIN de lecture des infos du bilan précédent si disponible
// Unité en cours
if ($unite=='' || $unite=='u' || $unite=='U') { $strDevise=$devise; $coef=1; }
elseif ($unite=='k' || $unite=='K') { $strDevise="K$devise"; $coef=1000; }
elseif ($unite=='m' || $unite=='M') { $strDevise="M$devise"; $coef=1000000; }
else { $strDevise=''; $coef=0; }
// Durée de l'exercice
if ($bilan['dureeExercice']*1>0)
$strDuree=' (durée : '.$bilan['dureeExercice'].' mois)';
else
$strDuree='';
// Corps du message
$message.='Source : Greffe du Tribunal en date du '.WDate::dateT('Ymd','d/m/Y',$bilan['dateProvPartenaire'])."\r\n";
$message.='Date de clôture : '. WDate::dateT('Ymd','d/m/Y',$dateExercice)."$strDuree\r\n";
if ($typeBilan<>'') $message.='Format déposé : '.$libTypeBilan[$typeBilan]."\r\n";
$message.="\r\n";
$message.="Adresse du siège : ". $tabIdentite['Adresse'].', '.$tabIdentite['CP'].' '.$tabIdentite['Ville']."\r\n";
$message.="Forme juridique : ". $tabIdentite['FJ_lib'].' ('.$tabIdentite['FJ'].")\r\n";
$message.="Activité de l'entreprise : ". $tabIdentite['NafEntLib'].' ('.$tabIdentite['NafEnt'].")\r\n";
$message.="\r\n";
$message.="ELEMENTS FINANCIERS :\r\n";
if ($typeBilan=='A') {
$message.='Primes et Cotisations .. '. sprintf("%13s", number_format($ca,0,'',' '))." $strDevise\r\n";
$message.='Charge des sinistres ... '. sprintf("%13s", number_format($sin,0,'',' '))." $strDevise\r\n";
} elseif ($typeBilan=='B') {
$message.='Intérêts et produits ... '. sprintf("%13s", number_format($ca,0,'',' '))." $strDevise\r\n";
$message.='Intérêts et charges .... '. sprintf("%13s", number_format($sin,0,'',' '))." $strDevise\r\n";
} else $message.='Chiffre d\'affaires ..... '. sprintf("%13s", number_format($ca,0,'',' '))." $strDevise";
if ($ca<>'' && $caPre<>'') {
$evol=((($ca*$coef)-($caPre*$coefPre))*100)/abs($caPre*$coefPre);
if ($evol<>0)
$message.=' ('. number_format2($evol,2,',',' ','%','+').' par rapport au '. WDate::dateT('Ymd','d/m/Y',$dateExercicePre).')';
}
$message.="\r\n";
// Résultat Net
if ($rn<>'') $message.='Résultat Net ........... '. sprintf("%13s", number_format($rn,0,'',' '))." $strDevise";
if ($rn<>'' && $rnPre<>'') {
$evol=((($rn*$coef)-($rnPre*$coefPre))*100)/abs($rnPre*$coefPre);
$message.=' ('. number_format2($evol,2,',',' ','%','+').")\r\n";
} elseif ($rn<>'') $message.="\r\n";
// Fonds Propres
if ($fp<>'') $message.='Fonds propres .......... '. sprintf("%13s", number_format($fp,0,'',' '))." $strDevise";
if ($fp<>'' && $fpPre<>'') {
$evol=((($fp*$coef)-($fpPre*$coefPre))*100)/abs($fpPre*$coefPre);
$message.=' ('. number_format2($evol,2,',',' ','%','+').")\r\n";
} elseif ($fp<>'') $message.="\r\n";
// Total Bilan
if ($totb<>'') $message.='Total bilan ............ '. sprintf("%13s", number_format($totb,0,'',' '))." $strDevise";
if ($totb<>'' && $totbPre<>'') {
$evol=((($totb*$coef)-($totbPre*$coefPre))*100)/abs($totbPre*$coefPre);
$message.=' ('. number_format2($evol,2,',',' ','%','+').")\r\n";
} elseif ($totb<>'') $message.="\r\n";
// Effectif
if ($effb<>'') $message.='Effectif bilan ......... '. sprintf("%13s", number_format($effb,0,'',' '))." pers.";
if ($effb<>'' && $effbPre<>'') {
$evol=(($effb-$effbPre)*100)/abs($effbPre);
$message.=' ('. number_format2($evol,1,',',' ','%','+').")\r\n";
} elseif ($effb<>'') $message.="\r\n";
$message.="\r\n";
/*
print_r($bilPre);
die($message);
*/
if ($tabLienEx["_$login"]==1) {
if (WS_VERSION==2)
$url="http://extranet.scores-decisions.com/finance/liasse/siret/$siren";
else
$url="http://extranet.scores-decisions.com/?page=liasse&action=logon&login=$login&siret=$siren&hach=".$tabHash["_$login"];
$message.="\r\nCliquez sur le lien suivant pour une consultation directe du bilan sur le site de Scores & Décisions :\r\n<div style=\"font-size: 6pt\"><a href=\"$url\">$url</a></div>\r\n";//d6c3f28eda29a2072b36872476a1d37a
}
$message.="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n";
if ($conversionCsv) {
$mel=substr(md5(preg_replace('/[^a-z0-9]/i','',$bilan['email'])),0,8);
$fichierCsv=MAIL_PJ_PATH.'surv_bilans_'.$login.'_'.$mel.'_'.DATE_HEURE_SCRIPT.'.csv';
$strLigneCsv='';
if ($login=='parisot1') {
$strOutput="A1;AA;BK1;BM1;BO1;BQ1;BS1;BU1;BW1;BY1;CA1;CC1;CE1;CG1;CI1;CL1;DI;DL;DL1;DW;DX;EH;FL;FM;FN;FO;FP;FQ;FS;FT;FU;FV;FW;FX;FY;FZ;GA;GB;GC;GD;GE;GQ;GV;HG;HI;HK;HN;UH;UK;VH2;VH3;VI2;YP;YS;YY;YZ;DUREE_MOIS;DATE_CLOTURE;SIREN;GM;HC";
$tabOutput=explode(';', $strOutput);
unset($mBil2);
$mBil2=new MBilans($siren);
$tabBilans=@$mBil2->listeBilans();
$derBilan=current($tabBilans);
$p=@$mBil2->getBilan(WDate::dateT('Ymd','d/m/Y',$derBilan['dateExercice']), $derBilan['typeBilan']);
foreach ($tabOutput as $poste) {
if (preg_match('/DATE/', $poste))
$strLigneCsv.=WDate::dateT('Ymd','d/m/Y',@$p[$poste]).';';
else
$strLigneCsv.=@$p[$poste].';';
}
$strLigneCsv.="\r\n";
} else {
if (!file_exists($fichierCsv)) {
$fp2=fopen($fichierCsv, 'a');
fwrite($fp2, "Siren;Id Bilan;Référence;Raison Sociale;Date source;Date clôture;Durée;Devise;Format déposé;NAF;CA;RCAI;SIN;RN;FP;TOTAL BILAN\r\n");
fclose($fp2);
}
$strLigneCsv="$siren;$idAnn;".trim($bilan['ref']).';'.$tabIdentite['Nom'].';'.WDate::dateT('Ymd','d/m/Y',$bilan['dateProvPartenaire']).';'.
WDate::dateT('Ymd','d/m/Y',$dateExercice).';'.$bilan['dureeExercice'].';'.$bilan['monnaie'].";$typeBilan;".$tabIdentite['NafEnt'].
";$ca;$rcai;$sin;$rn;$fp;$totb\r\n";
}
$fp2=fopen($fichierCsv, 'a');
fwrite($fp2, $strLigneCsv);
fclose($fp2);
}
if ($envoiGroupe==false) {
/** Profil souhaitant un email par annonce **/
$emailEnvoi=$email;
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
//$emailEnvoi='lenaoury@gmail.com';
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance Bilans $sirenAff $nicAff : $rs", $message)) {
if (!$modeTest) {
if ($envoiGroupe) $where="login='$login' AND email='$emailPre' AND source='bilans' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$login' AND email='$email' AND source='bilans' AND siren='$siren'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour le bilan n°'.$bilan['id']. ", login=$login, mail=$emailPre/$email, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Le bilan $idAnn a été envoyé à $email.";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Bilans $sirenAff $nicAff : $rs", $messageInfo);
echo date('Y/m/d H:i:s')." - Le bilan $idAnn a été envoyé à $email.\n";
} else {
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Le bilan $idAnn n'a pas été envoyé à $email !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Bilans $sirenAff $nicAff : $rs - Echec Envoi !", $messageInfo);
echo date('Y/m/d H:i:s')." - Le bilan n°$idAnn n'a pas été envoyé à $email.\n";
}
}
$emailPre=$email;
$loginPre=$login;
$sirenPre=$siren;
$envoiGroupePre=$envoiGroupe;
$conversionPdfPre=$conversionPdf;
$conversionCsvPre=$conversionCsv;
$fichierCsvPre=$fichierCsv;
}
/** Envoi du dernier email pour les envois groupés **/
if (($envoiGroupe||$envoiGroupePre) && $emailPre<>false && $loginPre<>false) {
$emailEnvoi=$emailPre;
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
if ($conversionPdf) {
$html2pdf = new HTML2PDF('P','A4', 'fr');
$messagePdf='<page>'.str_replace("---------------------------------------------------------------------------",'</page><page>', strtr($message, array("\r\n"=>'<br/>'))).'</page>';
$html2pdf->WriteHTML($messagePdf);
$content=$html2pdf->Output('annonces.pdf', true);
$fichierPdf=MAIL_PJ_PATH."surv_bilans_$login".'_'.date('Y-m-d').".pdf";
$fp2=fopen($fichierPdf, 'w');
fwrite($fp2, $content);
fclose($fp2);
$tabAttached=array($fichierPdf);
} elseif ($conversionCsv) {
$tabAttached=array($fichierCsv);
} else $tabAttached=array();
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance Bilans", $message, '', $tabAttached)) {
if (!$modeTest) {
if ($envoiGroupe) $where="login='$login' /*AND email='$emailPre'*/ AND source='bilans' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$login' /*AND email='$emailPre'*/ AND source='bilans' AND siren='$siren'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$bilan['id']. ", login=$login, mail=$emailPre, siren=$siren,".implode(',',$tabSiren).', rsoc='.$tabIdentite['Nom']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Les bilans $strIdAnn ont été envoyées à $emailPre.";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Bilans", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les bilans $strIdAnn ont été envoyées à $emailPre.\n";
} else {
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Le bilan $idAnn n'a pas été envoyé à $emailPre !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Bilans - Echec Envoi !", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les bilans n°$strIdAnn n'ont pas été envoyées à $emailPre.\n";
}
}
echo date ('Y/m/d - H:i:s')." - Fin du traitement d'envoi des surveillances Bilans.\n";
die();
?>