2012-10-16 07:44:31 +00:00
#!/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 ;
2013-06-19 08:24:49 +00:00
$genereDepot = false ; // G<> n<EFBFBD> ration du lot de traitement pour envoi vers FEDASO
$lastDepot = false ; // Remettre <20> disposition le pr<70> c<EFBFBD> dent envoi
2012-10-16 07:44:31 +00:00
$chargerRetour = true ; // Charger le/les retours Fedaso
2013-06-19 08:24:49 +00:00
$initReferentiel = false ; // Mettre <20> jour le r<> f<EFBFBD> rentiel des tables associ<63> es
2012-10-16 07:44:31 +00:00
$tabFichierIn = $tabFichLigneCmd = array ();
$strInfoScript = 'Usage : ' . basename ( $argv [ 0 ]) . " [OPTION]
2013-06-19 08:24:49 +00:00
Gestion des <EFBFBD> changes avec Fedaso .
2012-10-16 07:44:31 +00:00
Options :
2013-06-19 08:24:49 +00:00
- d ( : XXX ) Mettre <EFBFBD> disposition les $nbEnvois documents <EFBFBD> traiter par Fedaso ( forcer le nombre <EFBFBD> XXX ) .
- l Remettre <EFBFBD> disposition les documents du pr<EFBFBD> c<EFBFBD> dent envoi .
- t Forcer la mise <EFBFBD> jour hebdomadaire des tables associ<EFBFBD> es .
- c Charger les documents trait <EFBFBD> s et retourn<EFBFBD> s par Fedaso ( * )
2012-10-16 07:44:31 +00:00
- m Ne pas envoyer de mails en prod ( mode test )
- v Mode verbose ( ou debug )
2013-06-19 08:24:49 +00:00
( * ) Option par d<EFBFBD> faut si aucun argument n ' est pass<EFBFBD> .
" ;/* -e:X Calculer pour les X derniers exercices (3 par d<> faut)
2012-10-16 07:44:31 +00:00
- 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 :
2013-06-19 08:24:49 +00:00
if ( date ( 'N' ) > 5 ) // Nombre ISO-8601 du jour de la semaine (ajout PHP 5.1.0) de 1 <20> 7 : Lundi <20> Dimanche
2012-10-16 07:44:31 +00:00
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 ;
2013-06-19 08:24:49 +00:00
// Lecture du dossier des d<> pots de bilans <20> demander en saisie
2012-10-16 07:44:31 +00:00
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 " ;
2013-06-19 08:24:49 +00:00
if ( ! $iInsee -> valideSiren ( $siren )) echo 'KO siren invalide' . EOL ;
2012-10-16 07:44:31 +00:00
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 );
2013-06-19 08:24:49 +00:00
//move(BILANS_A_SAISIR_DIR.'/'.$filename, FEDASO_BILANS_TODO_DIR.'/'.$filename);
2012-10-16 07:44:31 +00:00
echo 'Ok' . EOL ;
2013-06-19 08:24:49 +00:00
$tabIdentite =@ $iInsee -> getIdentiteLight ( $siren );
$sirenAff = implode ( ' ' , str_split ( $siren , 3 ));
$rs = substr ( $tabIdentite [ 'Nom' ], 0 , 30 ) . '...' ;
$message = " Merci de proc<6F> der d<> s que possible <20> la saisie du bilan PDF de $pdfPage pages pour la soci<63> t<EFBFBD> suivante : \r \n " ;
$message .= " \r \n " ;
$message = " Siren : $sirenAff\r\n " . 'Raison Sociale : ' . $tabIdentite [ 'Nom' ] . " \r \n " ;
// Dur<75> e de l'exercice
if ( $dureeClot * 1 > 0 ) $strDuree = " (dur<75> e : $dureeClot mois) " ;
else $strDuree = '' ;
$message .= 'Date de cl<63> 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<73> ge : " . $tabIdentite [ 'Adresse' ] . ', ' . $tabIdentite [ 'CP' ] . ' ' . $tabIdentite [ 'Ville' ] . " \r \n " ;
$message .= " Forme juridique : " . $tabIdentite [ 'FJ_lib' ] . ' (' . $tabIdentite [ 'FJ' ] . " ) \r \n " ;
$message .= " Activit<EFBFBD> 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 <20> tant volumineux, pensez <20> saisir les actionnaires et participations (g<> n<EFBFBD> ralement mentionn<6E> 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 );
2012-10-16 07:44:31 +00:00
}
}
}
}
if ( count ( $tabFichierIn ) > 0 || count ( $tabFichLigneCmd ) > 0 ) {
$messageErrCtrl = '' ; // Message listant les erreurs de saisie
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du traitement de chargement du retour Bilans Fedaso. " . EOL ;
2012-10-16 07:44:31 +00:00
$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 ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Erreur : Impossible d'ouvrir le fichier n<> $i <20> traiter ( " . $nomFichier . " ) " . EOL ;
2012-10-16 07:44:31 +00:00
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 ));
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du traitement du fichier n<> $i , $nomFichier ( $nbLignes bilans <20> traiter) ! " . EOL ;
2012-10-16 07:44:31 +00:00
$refDocPre = $refoc = $dateInfoPre = $dateInfo = false ;
$ligne = 1 ;
rewind ( $fp );
2013-06-19 08:24:49 +00:00
/** Traitement de la 1<> re ligne **/
2012-10-16 07:44:31 +00:00
$a = utf8_decode ( fgets ( $fp ));
while ( ! feof ( $fp ))
{
$ajoutMailRef = false ;
$a = explode ( ',' , $a );
$refDoc = trim ( $a [ 0 ]);
2013-06-19 08:24:49 +00:00
// On ignore la ligne d'ent<6E> te
2012-10-16 07:44:31 +00:00
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 ];
}
2013-06-19 08:24:49 +00:00
// Contr<74> le du siren retourn<72> par Fedaso
2012-10-16 07:44:31 +00:00
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 );
2013-06-19 08:24:49 +00:00
// Il y a d<> j<EFBFBD> ce bilan en base ?
2012-10-16 07:44:31 +00:00
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 )
2013-06-19 08:24:49 +00:00
$messageLigne = " Fichier $fichier : ligne $ligne , $siren , $dateExercice - Retour Saisie n<> $codeSai : " . $tabLibCodeSaisie [ '_' . $codeSai ] . EOL ;
2012-10-16 07:44:31 +00:00
else
$messageLigne = '' ;
2013-06-19 08:24:49 +00:00
$messageLigne .= " $strEcho (saisi " .@ $tabPostes [ $strCtrl ] . ' <> ' . $total . " calcul<75> ) " . EOL ;
2012-10-16 07:44:31 +00:00
echo $messageLigne ;
$messageErrCtrl .= $messageLigne ;
2013-06-19 08:24:49 +00:00
$msgBilan .= $messageLigne ; //if ($tabPostes[$strCtrl]<>$total) echo "\tdiff<66> rents";
if ( $codeSai == '00' ) $anoBilan = 5 ;
2012-10-16 07:44:31 +00:00
}
// 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 );
2013-06-19 08:24:49 +00:00
echo " Bilan pr<70> c<EFBFBD> dent datant du ' $dateClP ' : " . EOL ;
2012-10-16 07:44:31 +00:00
//print_r($tabBilan);
2013-06-19 08:24:49 +00:00
echo " Bilan <20> ajouter datant du ' $dateCloturePre ' : " . EOL ;
2012-10-16 07:44:31 +00:00
//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 )
2013-06-19 08:24:49 +00:00
$messageLigne = " Fichier $fichier : ligne $nbLignes , $sirenPre , $dateCloturePre - Retour Saisie n<> $codeSai : " . $tabLibCodeSaisie [ '_' . $codeSai ] . EOL ;
2012-10-16 07:44:31 +00:00
else
$messageLigne = '' ;
2013-06-19 08:24:49 +00:00
$messageLigne .= " $strEcho (saisi en N " .@ $tabPostes [ $ctrl ] . ' <> ' . $total . " pr<70> sent en N-1 $dateClP ) " . EOL ;
2012-10-16 07:44:31 +00:00
echo $messageLigne ;
2013-06-19 08:24:49 +00:00
$messageErrCtrl .= $messageLigne ; //if ($tabPostes[$strCtrl]<>$total) echo "\tdiff<66> rents";
2012-10-16 07:44:31 +00:00
if ( $codeSai == '00' ) $anoBilan = true ;
//die();
}
}
}
// die();
*/
$ret = $iDb -> insert ( 'bilans' , $tabInsert );
$nbInsert ++ ;
print_r ( $tabInsert );
//die();
}
} else
print_r ( $tabInsert );
2013-06-19 08:24:49 +00:00
/** Mise <20> jour des informations de saisie **/
2012-10-16 07:44:31 +00:00
$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 ' " );
2013-06-19 08:24:49 +00:00
/** Envoi du mail <20> l'utilisateur final **/
2012-10-16 07:44:31 +00:00
$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 " ;
2013-06-19 08:24:49 +00:00
// Dur<75> e de l'exercice
if ( $dureeExercice * 1 > 0 ) $strDuree = " (dur<75> e : $dureeExercice mois) " ;
2012-10-16 07:44:31 +00:00
else $strDuree = '' ;
2013-06-19 08:24:49 +00:00
$message .= 'Date de cl<63> ture : ' . WDate :: dateT ( 'Ymd' , 'd/m/Y' , $dateExercice ) . " $strDuree\r\n " ;
2012-10-16 07:44:31 +00:00
if ( $typeBilan <> '' ) $message .= " Format de liasse : $liasse\r\n " ;
$message .= " \r \n " ;
2013-06-19 08:24:49 +00:00
$message .= " Adresse du si<73> ge : " . $tabIdentite [ 'Adresse' ] . ', ' . $tabIdentite [ 'CP' ] . ' ' . $tabIdentite [ 'Ville' ] . " \r \n " ;
2012-10-16 07:44:31 +00:00
$message .= " Forme juridique : " . $tabIdentite [ 'FJ_lib' ] . ' (' . $tabIdentite [ 'FJ' ] . " ) \r \n " ;
2013-06-19 08:24:49 +00:00
$message .= " Activit<EFBFBD> de l'entreprise : " . $tabIdentite [ 'NafEntLib' ] . ' (' . $tabIdentite [ 'NafEnt' ] . " ) \r \n " ;
2012-10-16 07:44:31 +00:00
$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 );
2013-06-19 08:24:49 +00:00
@ sendMail ( 'prod@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " Saisie de Bilan $sirenAff : $rs " , $message . EOL . EOL . " -------------------------------------------------- " . EOL . " Ce mail a <20> t<EFBFBD> envoy<6F> <20> $emailEnvoi . " );
2012-10-16 07:44:31 +00:00
// Comptage des retours par codes saisies
@ $tabNbCodeRet [ '_' . $codeSai ] ++ ;
}
$ligne ++ ;
$a = utf8_decode ( fgets ( $fp ));
2013-06-19 08:24:49 +00:00
// Variables de contr<74> les
2012-10-16 07:44:31 +00:00
$refDocPre = $refDoc ;
$dateInfoPre = $dateInfo ;
}
if ( bzip2 ( FEDASO_BILANS_DONE_DIR . $nomFichier , FEDASO_BACKUP_DIR . $nomFichier )) {
unlink ( FEDASO_BILANS_DONE_DIR . $nomFichier );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier n<> $i , $nomFichier vient d'<27> tre historis<69> . " . EOL ;
2012-10-16 07:44:31 +00:00
}
}
/*
if ( count ( $mailReferentiel ) > 0 ) {
2013-06-19 08:24:49 +00:00
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " FEDASO : Penser <20> modifier le r<> f<EFBFBD> rentiel " , implode ( EOL , $mailReferentiel ));
2012-10-16 07:44:31 +00:00
}
if ( count ( $msgDiff ) > 0 ) {
2013-06-19 08:24:49 +00:00
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " FEDASO : Liste des c'ontr<74> les " , implode ( EOL , $msgDiff ));
2012-10-16 07:44:31 +00:00
}
2013-06-19 08:24:49 +00:00
/** Enlever ce die() quand on est pr<70> t <20> valider les fichiers charger **/
2012-10-16 07:44:31 +00:00
//die();
2013-06-19 08:24:49 +00:00
/** Mise <EFBFBD> jour des informations globales de retour : Dates , Types d ' actes et structures lues
2012-10-16 07:44:31 +00:00
**/
/*
foreach ( $tabTypeActes as $refDoc => $typeActes ) {
2013-06-19 08:24:49 +00:00
// Transformation de la r<> f<EFBFBD> rence en r<> f. stock<63> e en base (suppression siren, acte/bilan et .pdf)
2012-10-16 07:44:31 +00:00
$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 ));
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Mise <20> jour des infos retourn<72> es pour $refDoc ... " . EOL ;
2012-10-16 07:44:31 +00:00
$typeActes = array_unique ( $typeActes );
if ( ! $iDb2 -> update ( 'fedaso' , array_merge ( $tabTypeData2 , array ( 'typeActesLus' => implode ( ';' , $typeActes ),
'dateRetour' => $dateFichier )), " siren= $siren AND params=' $params ' " )) {
2013-06-19 08:24:49 +00:00
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " FEDASO : ERREUR Fichier PDF non diffus<75> " ,
2012-10-16 07:44:31 +00:00
" 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 ' " )) {
2013-06-19 08:24:49 +00:00
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " FEDASO : ERREUR Fichier PDF non diffus<75> " ,
2012-10-16 07:44:31 +00:00
" 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 {
2013-06-19 08:24:49 +00:00
//$message.="Aucun fichier CSF <20> traiter !\r\n";
echo date ( 'Y/m/d - H:i:s' ) . " - Aucun fichier Fedaso <20> traiter ! " . EOL ;
2012-10-16 07:44:31 +00:00
//if (count($argv)==1) die($strInfoScript);
}
echo date ( 'Y/m/d - H:i:s' ) . ' - FIN du script.' . EOL ;
?>