548 lines
22 KiB
PHP
548 lines
22 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
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(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMFedaso.php');
|
|
include_once(FWK_PATH.'mail/sendMail.php');
|
|
|
|
function getNextDate($dateCour, $nbJours=7) {
|
|
$nextDate=date('Ymd', mktime(0, 0, 0, WDate::dateT('Ymd','m', $dateCour), WDate::dateT('Ymd','d', $dateCour)+$nbJours, WDate::dateT('Ymd','Y', $dateCour)));
|
|
return $nextDate;
|
|
}
|
|
|
|
$iDb=new WDB();
|
|
$iDb2=new WDB('sdv1');
|
|
$iInsee=new MInsee();
|
|
$fedaso=new MFedaso();
|
|
$iGreffes=new MGreffes();//getListeActes($siren)
|
|
|
|
|
|
$tabInfosGlobal=array();
|
|
define('FEDASO_BACKUP_DIR','/home/data/fedaso/bilans/');
|
|
define('BILANS_A_SAISIR_DIR', '/home/data/ftp/bilansext/send');
|
|
define('FEDASO_BILANS_TODO_DIR','/home/data/ftp/fedaso/bilans/recv');
|
|
define('FEDASO_BILANS_DONE_DIR','/home/data/ftp/fedaso/bilans/send/');
|
|
|
|
$nbEnvois=200;
|
|
$verFedasoFic='v0,6';
|
|
$verFedasoRef='v0,14';
|
|
|
|
$sep=',';
|
|
$eol=EOL;
|
|
|
|
$modeTest=false; // Ne pas envoyer de mails aux utilisateurs finaux de PROD
|
|
$modeDebug=false;
|
|
$genereDepot=false; // Génération du lot de traitement pour envoi vers FEDASO
|
|
$lastDepot=false; // Remettre à disposition le précédent envoi
|
|
$chargerRetour=true; // Charger le/les retours Fedaso
|
|
$initReferentiel=false; // Mettre à jour le référentiel des tables associées
|
|
$tabFichierIn=$tabFichLigneCmd=array();
|
|
|
|
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
|
Gestion des échanges avec Fedaso.
|
|
|
|
Options :
|
|
-d(:XXX) Mettre à disposition les $nbEnvois documents à traiter par Fedaso (forcer le nombre à XXX).
|
|
-l Remettre à disposition les documents du précédent envoi.
|
|
-t Forcer la mise à jour hebdomadaire des tables associées.
|
|
-c Charger les documents traités et retournés par Fedaso (*)
|
|
-m Ne pas envoyer de mails en prod (mode test)
|
|
-v Mode verbose (ou debug)
|
|
|
|
(*) Option par défaut si aucun argument n'est passé.
|
|
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
|
|
-f Calculer les scores financiers
|
|
*/
|
|
for ($i=1; isset($argv[$i]); $i++) {
|
|
if (substr($argv[$i],0,1)=='-') {
|
|
switch (substr($argv[$i],1,1)) {
|
|
case 'd':
|
|
$genereDepot=true;
|
|
$nbEnvoisUti=substr($argv[$i],3)*1;
|
|
if ($nbEnvoisUti>0) $nbEnvois=$nbEnvoisUti;
|
|
if (date('N')==5) $initReferentiel=true;
|
|
break;
|
|
case 'r':
|
|
$chargerRetour=true;
|
|
break;
|
|
case 'v':
|
|
$modeDebug=true;
|
|
break;
|
|
case 'm':
|
|
$modeTest=true;
|
|
break;
|
|
case 'l':
|
|
$lastDepot=true;
|
|
break;
|
|
case 't':
|
|
$initReferentiel=true;
|
|
break;
|
|
case '-':
|
|
case '?':
|
|
die($strInfoScript);
|
|
break;
|
|
default:
|
|
die('Option '. $argv[$i] . ' inconnue !'.EOL);
|
|
break;
|
|
}
|
|
} else $tabFichLigneCmd[]=$argv[$i];
|
|
}
|
|
|
|
// 1: A supprimer quand Fedaso est nickel... d'ici
|
|
if (!$modeDebug) {
|
|
switch (''.date('d-m')) {
|
|
case '01-01':
|
|
case '01-05':
|
|
case '25-12':
|
|
die();
|
|
break;
|
|
default:
|
|
if (date('N')>5) // Nombre ISO-8601 du jour de la semaine (ajout PHP 5.1.0) de 1 à 7 : Lundi à Dimanche
|
|
die();
|
|
break;
|
|
}
|
|
}
|
|
|
|
$nbPdfEncours=$nbPdfInexist=0;
|
|
|
|
if (count($tabFichLigneCmd)==0) {
|
|
$dh = opendir(FEDASO_BILANS_DONE_DIR);
|
|
while (false !== ($filename = readdir($dh))) {
|
|
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.txt')
|
|
$tabFichierIn[] = $filename;
|
|
}
|
|
sort($tabFichierIn);
|
|
} else $tabFichierIn=$tabFichLigneCmd;
|
|
|
|
// Lecture du dossier des dépots de bilans à demander en saisie
|
|
if ($genereDepot) {
|
|
$nbEncours=0;
|
|
$dh = opendir(BILANS_A_SAISIR_DIR);
|
|
while (false !== ($filename = readdir($dh))) {
|
|
if ($filename<>'.' && $filename<>'..' && substr($filename, -4)=='.pdf') {
|
|
$filename2=str_replace('.pdf','',$filename);
|
|
$tabTmp=explode('_', str_replace('BS','',$filename2));
|
|
$siren = $tabTmp[0];
|
|
$dateClot= $tabTmp[1];
|
|
$dureeClot=$tabTmp[2];
|
|
$conf = $tabTmp[3];
|
|
$idUti = $tabTmp[4];
|
|
$idBddExt=@$tabTmp[5];
|
|
$env = ''.@$tabTmp[6];
|
|
$dateFic=date('YmdHis', filectime(BILANS_A_SAISIR_DIR.'/'.$filename));
|
|
$tabPdf=getPdfInfo(BILANS_A_SAISIR_DIR.'/'.$filename);
|
|
if ($tabPdf) {
|
|
$pdfSize= $tabPdf['pdfSize'];
|
|
$pdfVer = $tabPdf['version'];
|
|
$pdfPage= $tabPdf['nbPages'];
|
|
}
|
|
$sizeKo=round($pdfSize/1024,1);
|
|
echo "$filename\t$sizeKo Ko\t$pdfPage page(s)\t";
|
|
|
|
if (!$iInsee->valideSiren($siren)) echo 'KO siren invalide'.EOL;
|
|
|
|
if(!$iDb2->insert('fedaso_bilans',array('siren' => $siren,
|
|
'dateCloture' => $dateClot,
|
|
'duree' => $dureeClot,
|
|
'confidentiel' => $conf,
|
|
'idUtilisateur' => $idUti,
|
|
'idExtranet' => $idBddExt,
|
|
'environnement' => $env,
|
|
'refDoc' => $filename,
|
|
'dateEntree' => $dateFic,
|
|
'dateEnvoi' => date('YmdHis'),
|
|
'pdfNum' => $nbEncours,
|
|
'pdfSize' => $pdfSize,
|
|
'pdfPage' => $pdfPage,
|
|
))) {
|
|
echo 'KO bdd'.mysql_error().EOL;
|
|
} else {
|
|
$nbEncours++;
|
|
bzip2(BILANS_A_SAISIR_DIR.'/'.$filename, FEDASO_BACKUP_DIR.$filename);
|
|
//move(BILANS_A_SAISIR_DIR.'/'.$filename, FEDASO_BILANS_TODO_DIR.'/'.$filename);
|
|
echo 'Ok'.EOL;
|
|
|
|
$tabIdentite=@$iInsee->getIdentiteLight($siren);
|
|
$sirenAff=implode(' ', str_split($siren,3));
|
|
$rs=substr($tabIdentite['Nom'],0,30).'...';
|
|
|
|
$message="Merci de procéder dès que possible à la saisie du bilan PDF de $pdfPage pages pour la société suivante :\r\n";
|
|
$message.="\r\n";
|
|
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
|
|
// Durée de l'exercice
|
|
if ($dureeClot*1>0) $strDuree=" (durée : $dureeClot mois)";
|
|
else $strDuree='';
|
|
|
|
$message.='Date de clôture : '. WDate::dateT('Ymd','d/m/Y',$dateClot)."$strDuree\r\n";
|
|
//if ($typeBilan<>'') $message.="Format de liasse : $liasse\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.="Document "; if ($conf<>1) $message.="non "; $message.="confidentiel\r\n";
|
|
$message.="Fichier $filename du ". WDate::dateT('Ymd','d/m/Y',$dateFic)."\r\n";
|
|
$message.="Nombre de pages : $pdfPage pages (".round($pdfSize/1000,1)." Ko)\r\n";
|
|
$message.="Utilisateur n°$idUti\r\n";
|
|
$message.="Extranet n°$idBddExt\r\n";
|
|
$message.="\r\n";
|
|
if ($pdfPage*1>10) $message.="Le document étant volumineux, pensez à saisir les actionnaires et participations (généralement mentionnés dans les annexes 17 et 18) !\r\n";
|
|
// if ($env==1) $message.="CECI EST UN TEST, MERCI DE NE PAS SAISIR LE DOCUMENT\r\n";
|
|
$message.="\r\n";
|
|
$message.="https://tville.scores-decisions.com/boffice/sirenbod/bilans.php?type=SAIS&ctrl=0\r\n";
|
|
|
|
sendMail('production@scores-decisions.com', 'jal42@scores-decisions.com',
|
|
"Demande de saisie du bilan $siren du ".WDate::dateT('Ymd','d/m/Y',$dateClot)." ($dureeClot mois)",
|
|
$message);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (count($tabFichierIn)>0 || count($tabFichLigneCmd)>0) {
|
|
$messageErrCtrl=''; // Message listant les erreurs de saisie
|
|
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement du retour Bilans Fedaso.".EOL;
|
|
$mailReferentiel=$msgDiff=array();
|
|
for ($i=0; isset($tabFichierIn[$i]); $i++)
|
|
{
|
|
//IKI
|
|
$nomFichier =$tabFichierIn[$i];
|
|
$dateFichier=date('YmdHis', filectime(FEDASO_BILANS_DONE_DIR.$nomFichier));
|
|
$fp=fopen(FEDASO_BILANS_DONE_DIR.$nomFichier, 'r');
|
|
if (!$fp) {
|
|
echo date ('Y/m/d - H:i:s') ." - Erreur : Impossible d'ouvrir le fichier n°$i à traiter (".$nomFichier.")".EOL;
|
|
echo date ('Y/m/d - H:i:s') . " - Fin du traitement".EOL;
|
|
die();
|
|
}
|
|
|
|
$nbLignes=0; // Nombre de ligne du fichier
|
|
while (!feof($fp))
|
|
{
|
|
$nbLignes++;
|
|
$a = trim(fgets($fp));
|
|
}
|
|
|
|
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier n°$i, $nomFichier ($nbLignes bilans à traiter) !".EOL;
|
|
|
|
|
|
$refDocPre=$refoc=$dateInfoPre=$dateInfo=false;
|
|
$ligne=1;
|
|
rewind($fp);
|
|
|
|
/** Traitement de la 1ère ligne **/
|
|
$a = utf8_decode(fgets($fp));
|
|
|
|
while (!feof($fp))
|
|
{
|
|
$ajoutMailRef=false;
|
|
$a=explode(',',$a);
|
|
|
|
$refDoc = trim($a[0]);
|
|
// On ignore la ligne d'entête
|
|
if ($refDoc<>'PdfId') {
|
|
$siren = trim($a[1])*1;
|
|
$nic = trim($a[2])*1;
|
|
//$typeData = strtoupper(trim(substr($a,9,1)));
|
|
//$typeActe = trim(substr($a,13,3));
|
|
$dateExercice = trim($a[3])*1;
|
|
$dureeExercice = trim($a[4])*1;
|
|
$dateExercicePre = trim($a[5])*1;
|
|
$devise = strtoupper(trim($a[6]));
|
|
if ($devise=='') $devise = 'EUR';
|
|
$liasse = trim($a[7])*1;
|
|
$typeBilan = strtoupper(trim($a[8]));
|
|
// Liste des codes retours
|
|
$codeRetour = trim($a[9]);
|
|
if (preg_match('/01/', $codeRetour)) $codeSai='01';
|
|
elseif (preg_match('/00/', $codeRetour)) $codeSai='00';
|
|
else $codeSai=substr($codeRetour,0,2);
|
|
$unite = strtoupper(trim($a[10]));
|
|
// Postes du bilans
|
|
$strPostes = trim($a[11]);
|
|
$tabPostes=array();
|
|
$tabTmp=explode(';',$strPostes);
|
|
foreach ($tabTmp as $tmpPoste) {
|
|
$tabTmp2=explode('=',$tmpPoste);
|
|
$tabPostes[$tabTmp2[0]]=$tabTmp2[1];
|
|
}
|
|
|
|
// Contrôle du siren retourné par Fedaso
|
|
if ($siren==0 || !$iInsee->valideSiren($siren)) {
|
|
$tmp=explode('-', $refDoc);
|
|
$siren=$tmp[1];
|
|
if ($siren==0 || !$iInsee->valideSiren($siren)) {
|
|
$tmp=explode('_', $refDoc);
|
|
$siren=preg_replace('/^BS/','',$tmp[0])*1;
|
|
}
|
|
if ($siren==0 || !$iInsee->valideSiren($siren))
|
|
die(date ('Y/m/d - H:i:s')." - ERREUR fichier $nomFichier, ligne $ligne : Siren $siren invalide dans $refDoc !".EOL);
|
|
}
|
|
|
|
$ret=$iDb->select('bilans', 'siren, typeBilan, dateExercice, dateExercicePre, PERIOD_DIFF(SUBSTRING(dateExercice,1,6),SUBSTRING(dateExercicePre,1,6)) as dureeExerciceCalc, dureeExercice', "siren='$siren' AND typeBilan='$typeBilan' AND dateExercice='$dateExercicePre'", true, MYSQL_ASSOC);
|
|
if (isset($ret[0])) {
|
|
$bilanPre=$ret[0];
|
|
if ($bilanPre['dureeExercice']>0) $dureeExercicePre=$bilanPre['dureeExercice'];
|
|
elseif ($bilanPre['dureeExerciceCalc']>0) $dureeExercicePre=$bilanPre['dureeExerciceCalc'];
|
|
}
|
|
$tabInsert=array('siren'=>$siren,
|
|
'dateProvPartenaire'=>date('Ymd'),
|
|
'dateExercice'=>$dateExercice,
|
|
'dateExercicePre'=>$dateExercicePre,
|
|
'dureeExercice'=>$dureeExercice,
|
|
'dureeExercicePre'=>$dureeExercicePre,
|
|
'monnaie'=>$devise,
|
|
'typeBilan'=>$typeBilan,
|
|
'monnaieOrigine'=>$devise,
|
|
'unite'=>$unite,
|
|
'partenaire'=>19,
|
|
'postes'=>$strPostes);
|
|
if ($codeSai=='00' || $codeSai=='01') {
|
|
$ret=$iDb->select('bilans', 'partenaire, siren, typeBilan, dateExercice, dateExercicePre, PERIOD_DIFF(SUBSTRING(dateExercice,1,6),SUBSTRING(dateExercicePre,1,6)) as dureeExerciceCalc, dureeExercice', "siren='$siren' AND typeBilan='$typeBilan' AND dateExercice='$dateExercice'", true, MYSQL_ASSOC);
|
|
// Il y a déjà ce bilan en base ?
|
|
if (1==0) {//isset($ret[0])) {
|
|
/* $bilanPre=$ret[0];
|
|
if ($bilanPre['partenaire']==7 ||
|
|
$bilanPre['partenaire']==8 ||
|
|
$bilanPre['partenaire']==9) {*/
|
|
$ret=$iDb->update('bilans', $tabInsert, "siren='$siren' AND typeBilan='$typeBilan' AND dateExercice='$dateExercice'");
|
|
$nbUpdate++;
|
|
//} else
|
|
// $nbNotUpdate++;
|
|
} else {
|
|
/** Tester sur les nouveaux bilans
|
|
* - CA x par 10 - 100
|
|
* - Sous-totaux
|
|
* - Total Bilan
|
|
**/
|
|
if ($typeBilan=='N' || $typeBilan=='S') {
|
|
$anoBilan=false;
|
|
$msgBilan='';
|
|
foreach ($tabCtrl[$typeBilan] as $ctrl=>$libCtrl) {
|
|
$tmpCtrl=preg_split('/(\+|\-|=)/', $ctrl, null, PREG_SPLIT_DELIM_CAPTURE);
|
|
$total=0;
|
|
$action='+';
|
|
$strEcho="$libCtrl :\t$ctrl";
|
|
foreach ($tmpCtrl as $strCtrl) {
|
|
switch($strCtrl) {
|
|
case '+': $action='+'; break;
|
|
case '-': $action='-'; break;
|
|
case '=': $action='='; break;
|
|
default:
|
|
if ($action=='+') $total+=@$tabPostes[$strCtrl];
|
|
elseif ($action=='-') $total-=@$tabPostes[$strCtrl];
|
|
elseif ($action=='=') {
|
|
if ($total>0) {
|
|
$totalMin=($total*0.995)-ECART_CTRL_MAX;
|
|
$totalMax=($total*1.005)+ECART_CTRL_MAX;
|
|
} elseif ($total<0) {
|
|
$totalMin=($total*1.005)-ECART_CTRL_MAX;
|
|
$totalMax=($total*0.995)+ECART_CTRL_MAX;
|
|
} else {
|
|
$totalMin=ECART_CTRL_MAX*(-1);
|
|
$totalMax=ECART_CTRL_MAX;
|
|
}
|
|
if (!((@$tabPostes[$strCtrl]*1)>=$totalMin && (@$tabPostes[$strCtrl]*1)<=$totalMax)) {
|
|
if (!$anoBilan)
|
|
$messageLigne="Fichier $fichier : ligne $ligne, $siren, $dateExercice - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
|
|
else
|
|
$messageLigne='';
|
|
$messageLigne.="$strEcho (saisi ".@$tabPostes[$strCtrl].' <> '.$total." calculé)".EOL;
|
|
echo $messageLigne;
|
|
$messageErrCtrl.=$messageLigne;
|
|
$msgBilan.=$messageLigne; //if ($tabPostes[$strCtrl]<>$total) echo "\tdifférents";
|
|
if ($codeSai=='00') $anoBilan=5;
|
|
}
|
|
// else echo "ok\t(".@$tabPostes[$strCtrl].'='.$total.')'.EOL;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
$mBil=new MBilans($sirenPre);
|
|
$tabBilans=@$mBil->listeBilans();
|
|
//echo 'Liste des Bilans en base :'.EOL;
|
|
//print_r($tabBilans);
|
|
$tabBilan=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$dateClP), $typeBilan);
|
|
echo "Bilan précédent datant du '$dateClP' :".EOL;
|
|
//print_r($tabBilan);
|
|
echo "Bilan à ajouter datant du '$dateCloturePre' :".EOL;
|
|
//print_r($tabInsert);
|
|
//print_r($tabPostes);
|
|
if ($typeBilan=='N') {
|
|
foreach ($tabCtrlInter[$typeBilan] as $ctrl=>$libCtrl) {
|
|
$total=@$tabBilan[$ctrl]*1;
|
|
$strEcho="PROBLEME D'UNITE ? $libCtrl :\t$ctrl";
|
|
if ($total>0) {
|
|
$totalMin1=($total*0.008)-ECART_CTRL_MAX;
|
|
$totalMax1=($total*0.0012)+ECART_CTRL_MAX;
|
|
$totalMin2=($total*800)-ECART_CTRL_MAX;
|
|
$totalMax2=($total*1200)+ECART_CTRL_MAX;
|
|
} elseif ($total<0) {
|
|
$totalMin1=($total*0.0012)-ECART_CTRL_MAX;
|
|
$totalMax1=($total*0.008)+ECART_CTRL_MAX;
|
|
$totalMin2=($total*1200)-ECART_CTRL_MAX;
|
|
$totalMax2=($total*800)+ECART_CTRL_MAX;
|
|
} else {
|
|
$totalMin1=$totalMin2=false;//ECART_CTRL_MAX*(-1);
|
|
$totalMax1=$totalMax2=false;//ECART_CTRL_MAX;
|
|
}
|
|
if (isset($tabBilan[$ctrl]) && // Il y a un poste
|
|
!$totalMin1 && // Des seuils min
|
|
!$totalMin2 && // ... et max
|
|
!((@$tabPostes[$ctrl]*1)>=$totalMin1 && (@$tabPostes[$ctrl]*1)<=$totalMax1)) {
|
|
if (!$anoBilan)
|
|
$messageLigne="Fichier $fichier : ligne $nbLignes, $sirenPre, $dateCloturePre - Retour Saisie n°$codeSai : ".$tabLibCodeSaisie['_'.$codeSai].EOL;
|
|
else
|
|
$messageLigne='';
|
|
$messageLigne.="$strEcho (saisi en N ".@$tabPostes[$ctrl].' <> '.$total." présent en N-1 $dateClP)".EOL;
|
|
echo $messageLigne;
|
|
$messageErrCtrl.=$messageLigne; //if ($tabPostes[$strCtrl]<>$total) echo "\tdifférents";
|
|
if ($codeSai=='00') $anoBilan=true;
|
|
//die();
|
|
}
|
|
}
|
|
}
|
|
// die();
|
|
*/
|
|
$ret=$iDb->insert('bilans', $tabInsert);
|
|
$nbInsert++;
|
|
print_r($tabInsert);
|
|
//die();
|
|
}
|
|
} else
|
|
print_r($tabInsert);
|
|
|
|
/** Mise à jour des informations de saisie **/
|
|
$nbPostes=count($tabPostes);
|
|
$tabUpdate=array( 'retNic' => $nic,
|
|
'retDateClot' => $dateExercice,
|
|
'retDuree' => $dureeExercice,
|
|
'retDatePre' => $dateExercicePre,
|
|
'retDevise' => $devise,
|
|
'retLiasse' => $liasse,
|
|
'retTypeBilan' => $typeBilan,
|
|
'retUnite' => $unite,
|
|
'retNbPostes' => $nbPostes,
|
|
'retPostes' => $strPostes,
|
|
'codeRetour' => $codeRetour,
|
|
'dateRetour' => $dateFichier,
|
|
'dateChargement'=> date('YmdHis'),
|
|
'retAnoSaisie' => $anoBilan,
|
|
'retAnoListes' => $msgBilan,
|
|
);
|
|
$iDb2->update('fedaso_bilans', $tabUpdate, "refDoc='$refDoc'");
|
|
|
|
/** Envoi du mail à l'utilisateur final **/
|
|
$filename2=str_replace('.pdf','',$refDoc);
|
|
$tabTmp=explode('_', $filename2);
|
|
$siren = preg_replace('/^BS/','',$tabTmp[0])*1;
|
|
$dateClot= $tabTmp[1];
|
|
$idUti = $tabTmp[4];
|
|
$rep=$iDb2->select('utilisateurs', 'id, idClient, login, email, actif, nom, prenom, referenceParDefaut', "id='$idUti'", true, MYSQL_ASSOC);
|
|
$emailEnvoi=$rep[0]['email'];
|
|
$tabIdentite=@$iInsee->getIdentiteLight($siren);
|
|
$sirenAff=implode(' ', str_split($siren,3));
|
|
$rs=substr($tabIdentite['Nom'],0,30).'...';
|
|
$message="Siren : $sirenAff\r\n".'Raison Sociale : '.$tabIdentite['Nom']."\r\n";
|
|
// Durée de l'exercice
|
|
if ($dureeExercice*1>0) $strDuree=" (durée : $dureeExercice mois)";
|
|
else $strDuree='';
|
|
|
|
$message.='Date de clôture : '. WDate::dateT('Ymd','d/m/Y',$dateExercice)."$strDuree\r\n";
|
|
if ($typeBilan<>'') $message.="Format de liasse : $liasse\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.="NOS SERVICES ONT EFFECTUE LA SAISIE DU BILAN POUR CETTE ENTREPRISE\r\n";
|
|
|
|
if ($modeTest) $emailEnvoi='lenaoury@gmail.com';
|
|
@sendMail('prod@scores-decisions.com', $emailEnvoi, "Saisie de Bilan $sirenAff : $rs", $message);
|
|
@sendMail('prod@scores-decisions.com', 'ylenaour@scores-decisions.com', "Saisie de Bilan $sirenAff : $rs", $message.EOL.EOL."--------------------------------------------------".EOL."Ce mail a été envoyé à $emailEnvoi.");
|
|
|
|
// Comptage des retours par codes saisies
|
|
@$tabNbCodeRet['_'.$codeSai]++;
|
|
}
|
|
$ligne++;
|
|
$a = utf8_decode(fgets($fp));
|
|
|
|
// Variables de contrôles
|
|
$refDocPre=$refDoc;
|
|
$dateInfoPre=$dateInfo;
|
|
}
|
|
|
|
if (bzip2(FEDASO_BILANS_DONE_DIR.$nomFichier, FEDASO_BACKUP_DIR.$nomFichier)) {
|
|
unlink(FEDASO_BILANS_DONE_DIR.$nomFichier);
|
|
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$i, $nomFichier vient d'être historisé.".EOL;
|
|
}
|
|
}
|
|
/*
|
|
if (count($mailReferentiel)>0) {
|
|
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Penser à modifier le référentiel", implode(EOL, $mailReferentiel));
|
|
}
|
|
if (count($msgDiff)>0) {
|
|
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : Liste des c'ontrôles", implode(EOL, $msgDiff));
|
|
}
|
|
|
|
/** Enlever ce die() quand on est prêt à valider les fichiers charger **/
|
|
//die();
|
|
|
|
/** Mise à jour des informations globales de retour : Dates, Types d'actes et structures lues
|
|
**/
|
|
/*
|
|
foreach ($tabTypeActes as $refDoc=>$typeActes) {
|
|
|
|
// Transformation de la référence en réf. stockée en base (suppression siren, acte/bilan et .pdf)
|
|
$params=str_replace('.pdf','',preg_replace('/^(bilan|acte)-\d\d\d\d\d\d\d\d\d-/Ui','', $refDoc));
|
|
$tmp=explode('-', $refDoc);
|
|
$siren=$tmp[1];
|
|
|
|
$tabTypeData2=array();
|
|
if (isset($tabTypeData[$refDoc]))
|
|
foreach ($tabTypeData[$refDoc] as $typeD=>$nbD)
|
|
$tabTypeData2=array_merge($tabTypeData2, array('nbData'.$typeD=>$nbD));
|
|
|
|
echo date ('Y/m/d - H:i:s') . " - Mise à jour des infos retournées pour $refDoc...".EOL;
|
|
$typeActes=array_unique($typeActes);
|
|
if (!$iDb2->update('fedaso', array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes),
|
|
'dateRetour'=>$dateFichier)),"siren=$siren AND params='$params'")) {
|
|
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : ERREUR Fichier PDF non diffusé",
|
|
"siren=$siren AND params='$params'".EOL.
|
|
print_r(array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes), 'dateRetour'=>$dateFichier)),true));
|
|
echo date ('Y/m/d - H:i:s')." - ERREUR ". mysql_errno(). " - MAJ impossible sur 'fedaso' : ". mysql_error().EOL;
|
|
if (substr($params,0,4)*1>1950) $pageAc='greffe_bilans';
|
|
else $pageAc='greffe_actes';
|
|
$iDb2->insert('fedaso', array( 'siren' => $siren,
|
|
'params' => $params,
|
|
'page' => $pageAc,
|
|
'dateEnvoi' => date('YmdHis'),
|
|
));
|
|
if (!$iDb2->update('fedaso', array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes),
|
|
'dateRetour'=>$dateFichier)),"siren=$siren AND params='$params'")) {
|
|
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "FEDASO : ERREUR Fichier PDF non diffusé",
|
|
"siren=$siren AND params='$params'".EOL.
|
|
print_r(array_merge($tabTypeData2, array('typeActesLus'=>implode(';', $typeActes), 'dateRetour'=>$dateFichier)),true));
|
|
die();
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement du retour Fedaso.".EOL;
|
|
|
|
} else {
|
|
//$message.="Aucun fichier CSF à traiter !\r\n";
|
|
echo date ('Y/m/d - H:i:s') . " - Aucun fichier Fedaso à traiter !".EOL;
|
|
//if (count($argv)==1) die($strInfoScript);
|
|
}
|
|
|
|
echo date('Y/m/d - H:i:s') .' - FIN du script.'. EOL;
|
|
|
|
?>
|