#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini 1) { for ($i=1; isset($argv[$i]); $i++) { if (substr($argv[$i],0,1)=='-') { switch (substr($argv[$i],1,1)) { case 'i': $incrementationDesTour=false; $repProduction=REP_TEMP; break; case 's': $typePrestaton='surveillanceBodacc'; break; case 'd': $typePrestaton='diffusionBodacc'; break; case 'e': $ignoreDateDerExec=true; break; case 'r': $retroActivite=substr($argv[$i],3,strlen($argv[$i])-3); break; case 'c': $codeAdherent=substr($argv[$i],3,strlen($argv[$i])-3); break; case '-': case '?': die($strInfoScript); break; default: die('Option '. $argv[$i] . " inconnue !\n"); break; } } } } $iDb=new WDB('jo'); $iDb2=new WDB('jo'); $iBodacc=new MBodacc(); function genereMultiLigne($typeLigne, $enteteLigne, $chaine, $eol="\r\n", &$nbLignes=0) { $lonLigne=LONGUEUR_LIGNE_SORTIE-90; $str=''; $chaine=preg_replace('/ +/', ' ', strtr($chaine, array("\n"=>' ',"\r"=>' ',";"=>' '))); switch ($typeLigne) { case '102': // Activité déclarée au Bodacc case '103': // Texte rectificatif case '104': // Annonce Bodacc Complète case '105': // Structure dirigeants $tabLigne=str_split($chaine, $lonLigne); foreach ($tabLigne as $i=>$ligne) { $str.=initstr($typeLigne.$enteteLigne.$ligne, LONGUEUR_LIGNE_SORTIE).$eol; $nbLignes++; } break; default: die("ERREUR : Structure de sortie n°$typeLigne non prise en charge !\n"); break; } return $str; } function getListeAdherents($prestation, $codeAdherent='') { $strCodeAdherent=''; if ($codeAdherent<>'') $strCodeAdherent.=" AND q.loginprestation_c='$codeAdherent' "; $iDbCrm=new WDB('sugarcrm'); $rep=$iDbCrm->select('cases_cstm q, accounts a, cases p LEFT JOIN contacts_cases k ON p.id = k.case_id LEFT JOIN contacts c ON k.contact_id = c.id LEFT JOIN contacts_cstm s ON c.id = s.id_c', 'p.id, p.case_number, p.name, p.account_id, a.name, q.typeprestation_c, q.datemiseenplace_c, q.datefinprestation_c, q.prestatest_c, q.loginprestation_c, q.passwordprestation_c, q.supportprestation_c, q.optionsupport_c, q.freqenvois_c, q.formatdesenvois_c, q.trtnumerotour_c, q.trtdatederniereexec_c*1 as derniereExec, q.optionsprestation_c, k.contact_id, k.deleted as lienContactDeleted, c.deleted as ContactDeleted, c.salutation, c.first_name, c.last_name, c.title, c.department, c.phone_mobile, c.phone_work, c.phone_fax, c.email1, c.email2, c.primary_address_street, c.primary_address_city, c.primary_address_postalcode, s.typedecontact_c', "p.deleted=0 AND p.id=q.id_c AND q.typeprestation_c='$prestation' AND q.prestationactive_c=1 AND p.account_id=a.id AND a.deleted=0 $strCodeAdherent ORDER BY p.case_number ASC", true, MYSQL_ASSOC); //print_r($rep); $tabPrestation=array(); foreach ($rep as $i=>$contacts) { $numPrestation=$contacts['case_number']; if ($contacts['lienContactDeleted']==0 && $contacts['ContactDeleted']==0) { if ($contacts['email1']<>'') $email=$contacts['email1']; else $email=$contacts['email2']; if (!isset($tabPrestation[$numPrestation])) { // echo "Ligne $i, prestation $numPrestation : ".$contacts['last_name']."\n"; $tabPrestation[$numPrestation]=array( 'id'=>$contacts['case_number'], 'idPrestationBdd'=>$contacts['id'], 'nomClient'=>$contacts['name'], 'typePrestation'=>$contacts['typeprestation_c'], 'dateDebut'=>$contacts['datemiseenplace_c'], 'dateFin'=>$contacts['datefinprestation_c'], 'test'=>$contacts['prestatest_c'], 'loginPrestation'=>$contacts['loginprestation_c'], 'passwPrestation'=>$contacts['passwordprestation_c'], 'supportPrestation'=>$contacts['supportprestation_c'], 'optionSupport'=>$contacts['optionsupport_c'], 'freqEnvois'=>$contacts['freqenvois_c'], 'formatEnvois'=>$contacts['formatdesenvois_c'], 'numeroDeTour'=>$contacts['trtnumerotour_c'], 'dateDerniereExec'=>$contacts['derniereExec']*1, 'optionPrestation'=>$contacts['optionsprestation_c'], 'contacts'=>array(array( 'salutation'=>$contacts['salutation'], 'prenom'=>$contacts['first_name'], 'nom'=>$contacts['last_name'], 'fonction'=>$contacts['title'], 'tel_por'=>$contacts['phone_mobile'], 'tel_bur'=>$contacts['phone_work'], 'tel_fax'=>$contacts['phone_fax'], 'email'=>$email, 'adresse'=>$contacts['primary_address_street'], 'ville'=>$contacts['primary_address_city'], 'codePos'=>$contacts['primary_address_postalcode'], 'typeContact'=>$contacts['typedecontact_c']))); } else { // echo "Ligne $i, prestation $numPrestation : ".$contacts['last_name']."\n"; $tabPrestation[$numPrestation]['contacts']=array_merge($tabPrestation[$numPrestation]['contacts'], array( array( 'salutation'=>$contacts['salutation'], 'prenom'=>$contacts['first_name'], 'nom'=>$contacts['last_name'], 'fonction'=>$contacts['title'], 'tel_por'=>$contacts['phone_mobile'], 'tel_bur'=>$contacts['phone_work'], 'tel_fax'=>$contacts['phone_fax'], 'email'=>$email, 'adresse'=>$contacts['primary_address_street'], 'ville'=>$contacts['primary_address_city'], 'codePos'=>$contacts['primary_address_postalcode'], 'typeContact'=>$contacts['typedecontact_c']))); } }} return $tabPrestation; } echo date ('Y/m/d - H:i:s')." - Début du traitement diffusion BODACC.\n"; /** On récupère la liste des Adhérents **/ //die(print_r(getListeAdherents('extranet'))); $tabAdherents=getListeAdherents($typePrestaton, $codeAdherent); //print_r($tabAdherents);die(); $nbClients=count($tabAdherents); echo date ('Y/m/d - H:i:s')." - Il y a $nbClients client(s) à servir en diffusion BODACC.".EOL; //print_r($tabAdherents);die(); foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations { $clientNumTourFichier=($tabAdherent['numeroDeTour']*1)+1; $clientIdentifiant=trim($tabAdherent['loginPrestation']); $nomClient=trim($tabAdherent['nomClient']); $numPrestation=$tabAdherent['id']; /** Le client souhaite une compression du fichier ? **/ if (strpos($tabAdherent['optionSupport'], 'gzip')) $optionZip='gzip'; elseif (strpos($tabAdherent['optionSupport'], 'zip')) $optionZip='zip'; else $optionZip='none'; /** Le client préfère un paramétrage UNIX ou Window pour ses fins de lignes **/ if (strpos($tabAdherent['optionSupport'], 'os=dos')) $optionEOL="\r\n"; elseif (strpos($tabAdherent['optionSupport'], 'os=unix')) $optionEOL="\n"; else $optionEOL=EOL; $tabOptOutput=array(); if($tabAdherent['dateDebut']<>'' && $tabAdherent['dateDebut']<>'0000-00-00') $dateDebutPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDebut']); else $dateDebutPrestation=false; if($tabAdherent['dateFin']<>'' && $tabAdherent['dateFin']<>'0000-00-00') $dateFinPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateFin']); else $dateFinPrestation=false; //die($tabAdherent['dateDerniereExec']); if ($ignoreDateDerExec) $dateDernierTraitement=false; elseif ($tabAdherent['dateDerniereExec']<>0) $dateDernierTraitement=$tabAdherent['dateDerniereExec'];//WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDerniereExec']); else $dateDernierTraitement=false; if ($dateDebutPrestation && $dateDebutPrestation>DATE) // La date de démarrage de la prestation n'est pas encore arrivée { echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : La prestation démarre le $dateDebutPrestation !".EOL; continue; } if ($dateFinPrestation && DATE>$dateFinPrestation) // La date de fin de la prestation est révolue { echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fin de la prestation le $dateFinPrestation (Dernière exécution le $dateDernierTraitement) !".EOL; continue; } if ($dateDernierTraitement && substr($dateDernierTraitement,0,8)*1==DATE*1) { echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Traitement déjà exécuté aujourd'hui !".EOL; continue; } elseif ($dateDernierTraitement==0) { echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Jamais exécutée pour ce client !".EOL; $dateDernierTraitement=false; /* Il faudra vérifier si on génère le stocke et depuis quand sinon on prond le dernier Bodacc */ }// Bloc a décommenter echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Export des annonces en cours... (dernier traitement le $dateDernierTraitement)".EOL; /** ** On génère la ligne d'entête **/ $fp=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', 'w'); if ($fp==false) die('ERREUR : Impossible de créer le fichier !'); error_reporting(E_ALL ^ E_NOTICE); $str= initstr('001', 3, '0', ALIGN_RIGHT) . // Type de ligne initstr(date('YmdHis'), 14) . // Date de génération du fichier initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client initstr($clientIdentifiant, 36) . // Identifiant Client initstr($typePrestaton, 32) . // Type de prestation initstr(VERSION_FICHIER_BODACC, 4) . // Type de prestation initstr(FILLER, 1901) . // FILLER ''; fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL); $nbLignes=1; /** ** On génère les lignes de détail **/ $strRubrique=''; if (strpos($tabAdherent['optionPrestation'], 'comptes')) // Export du Bodacc C - Dépôt des comptes $strRubrique.="'comptes',"; if (strpos($tabAdherent['optionPrestation'], 'creations')) // Export des créations $strRubrique.="'creations',"; if (strpos($tabAdherent['optionPrestation'], 'mmd')) // Export des MMD $strRubrique.="'mmd',"; if (strpos($tabAdherent['optionPrestation'], 'procol')) // Export des ProCol $strRubrique.="'procol',"; if (strpos($tabAdherent['optionPrestation'], 'radiations')) // Export des radiations $strRubrique.="'radiations',"; if (strpos($tabAdherent['optionPrestation'], 'ventes')) // Export des ventes cessions $strRubrique.="'ventes',"; if (strpos($tabAdherent['optionPrestation'], '101')) // Commentaire inclus dans l'annonce si nécessaire $tabOptOutput[101]=true; else $tabOptOutput[101]=false; if (strpos($tabAdherent['optionPrestation'], '102')) // Activite déclaré au Bodacc $tabOptOutput[102]=true; else $tabOptOutput[102]=false; if (strpos($tabAdherent['optionPrestation'], '104')) // Annonce complète au format texte $tabOptOutput[104]=true; else $tabOptOutput[104]=false; if (strpos($tabAdherent['optionPrestation'], '105')) // Structure Dirigeants BODACC $tabOptOutput[105]=true; else $tabOptOutput[105]=false; $tabNaf=array(); $posNaf=stripos($tabAdherent['optionPrestation'], 'NAF='); if ($posNaf!==false) { if (preg_match('/NAF=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches)) $tabNaf=preg_split('(;|,)', $matches[1]); //die(print_r($tabNaf)); } $versionEvenClient=0; if (preg_match('/^versionEven=(.*)$/mUi', $tabAdherent['optionPrestation'], $matches)) $versionEvenClient=$matches[1]*1; /*$tabSiren2=array(); foreach ($tabSiren as $siren) { $tabSiren2[]=$siren['siren']; } sort($tabSiren2); $tabSiren=$tabSiren2; unset($tabSiren2); //die();*/ $fields='d.id, d.siren, sirenValide, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, Rubrique_Bodacc, Rubrique, typeAnnonce, corrNum_Annonce, corrBodacc_Date_Parution, corrPage, corrNumParution, corrTexteRectificatif, RC, d.raisonSociale, nomCommercial, d.enseigne, nationalite, FJ, Capital, CapitalDev, adresse, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, d.ville, adresseSiege, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, administration, activite, typeEven, commentaires, dateEffet, publication, publicationNom, publicationDate, fusion, dateDebutActivite, dateCessationActivite, dateCessationPaiement, dateJugement, Numero, VenteMt, VenteDev, bienAcqui, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, administrateur, admNom, admRepr, admAdresse, admCP, admVille, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert'; $where='1'; // On filtre les rubriques demandées if ($strRubrique<>'') $where.=' AND Rubrique IN('. substr($strRubrique,0,strlen($strRubrique)-1) .') '; // On ne prend que les dernières annonces depuis la dernière exécution de la prestation pour le client if ($dateDernierTraitement) { if (!$retroActivite) $where.=" AND (d.dateInsert>$dateDernierTraitement OR d.dateUpdate>$dateDernierTraitement) "; else { $where.=" AND (d.dateInsert>$dateDernierTraitement OR d.dateUpdate>$dateDernierTraitement OR (d.dateInsert>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateConf=0 AND s.dateSuppr=0) OR (d.dateUpdate>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateConf=0 AND s.dateSuppr=0) ) "; } } // ... sinon on prend les annonces depuis la date de début de la prestation elseif ($dateDebutPrestation) if (!$retroActivite) $where.=" AND (d.dateInsert>'$dateDebutPrestation' OR d.dateUpdate>'$dateDebutPrestation') "; else $where.=" AND (d.dateInsert>'$dateDebutPrestation' OR d.dateUpdate>'$dateDebutPrestation' OR (d.dateInsert>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateSuppr=0) OR (d.dateUpdate>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateSuppr=0) ) "; else $where.=" AND (d.dateInsert>='MAX(DATE_FORMAT(d.dateInsert,'%Y-%m-%d'))' OR d.dateUpdate>='MAX(DATE_FORMAT(d.dateUpdate,'%Y-%m-%d'))') "; /*if (!$retroActivite) $where.=" AND (d.dateInsert>$dateDernierTraitement OR d.dateUpdate>$dateDernierTraitement) "; else { $where.=" AND (d.dateInsert>$dateDernierTraitement OR d.dateUpdate>$dateDernierTraitement OR (d.dateInsert>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateConf=0 AND s.dateSuppr=0) OR (d.dateUpdate>DATE_SUB(s.dateAjout, INTERVAL $retroActivite DAY) AND s.dateConf=0 AND s.dateSuppr=0) ) "; }*/ // $where.=" AND Bodacc_Date_Parution>'2007-11-01' "; // Mederic a supprimer après la rétro du 22 mai 2008 if ($typePrestaton=='diffusionBodacc') { echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : diffusion...".EOL; $tables='bodacc_detail d'; // Credit safe // if ($numPrestation==11) // $where=" d.siren<>0 AND d.sirenValide=1 AND Bodacc_Date_Parution BETWEEN '2007-01-01' AND '2007-12-31' "; if (count($tabNaf)>0) { $strNaf="'".implode("','",$tabNaf)."'"; $fields='d.id'; $tables='bodacc_detail d, etablissements e'; $where.=" AND d.siren=e.siren AND d.siren<>0 AND (e.ape_etab IN ($strNaf) OR e.ape_entrep IN ($strNaf)) AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 GROUP BY d.id;"; // OR (d.siren<>e.siren AND d.siren=0 AND (d.activite LIKE '%pharmacie%' OR d.activite LIKE '%officine%')) GROUP BY d.id } } elseif ($typePrestaton=='surveillanceBodacc') { $tabSiren=$iDb->select('surveillances_listes', 'siren, ref', "idClient='$clientIdentifiant' AND dateSuppr='0000-00-00'", true, MYSQL_ASSOC); $nbSirenClient=count($tabSiren); echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbSirenClient unités en surveillance...".EOL; $fields.=', s.ref'; $tables='bodacc_detail d, surveillances_listes s'; $where.=" AND d.siren=s.siren AND s.siren<>0 AND s.idClient='$clientIdentifiant' AND s.dateSuppr='0000-00-00' "; if (!$retroActivite) $where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; /*dateAjout dateConf dateSuppr rs cp ville indTrt dateDerEnvoi Modifier SURBODPRDFTSMEDERIC 484968573 00010 201278081 2008-04-04 0000-00-00 0000-00-00*/ } else die('Type de prestation non gérée : '.$typePrestaton.EOL); //$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; // NE PAS ENVOYER D'ANNONCES DONT LES DELAIS DE FORCLUSION SONT PASSEES echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL; $nbAnnonces=$iDb->select($tables, $fields, $where, true, MYSQL_ASSOC, true); // Gérer la table surveillance echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbAnnonces annonces à traiter...".EOL; //echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Début de génération du fichier client en version $versionEvenClient...".EOL; if (count($tabNaf)>0) { $fields='d.id, d.siren, sirenValide, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, Rubrique_Bodacc, Rubrique, typeAnnonce, corrNum_Annonce, corrBodacc_Date_Parution, corrPage, corrNumParution, corrTexteRectificatif, RC, d.raisonSociale, nomCommercial, d.enseigne, nationalite, FJ, Capital, CapitalDev, adresse, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, d.ville, adresseSiege, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, administration, activite, typeEven, commentaires, dateEffet, publication, publicationNom, publicationDate, fusion, dateDebutActivite, dateCessationActivite, dateCessationPaiement, dateJugement, Numero, VenteMt, VenteDev, bienAcqui, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, administrateur, admNom, admRepr, admAdresse, admCP, admVille, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert'; $tables='bodacc_detail d'; $where='d.id IN (0'; while ($annonce=$iDb->fetch(MYSQL_ASSOC)) { $where.=','.$annonce['id']; } $where.=')'; echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL; $nbAnnonces=$iDb->select($tables, $fields, $where, true, MYSQL_ASSOC, true); echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbAnnonces liens entrep/annonces à traiter...".EOL; } echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Début de génération du fichier client en version $versionEvenClient...".EOL; //echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL; //while(=$iDb->fetch(MYSQL_ASSOC)) { while ($annonce=$iDb->fetch(MYSQL_ASSOC)) { /** Marquer les liens REF/SIREN envoyées à chaque client ** Gérer les versions de tables even pour les clients ** ** Renvoyer le stock à médéric **/ //print_r($annonce); //$k++; //$siren=$record['siren'];***/ //foreach ($tabAnnonces as $numAnn=>$annonce) { // On récupère les 2 intervenants de la procédure //if (!in_array($annonce['siren'], $tabSiren)) continue; $numInter=0; $inter=array(); if ($annonce['mandNom']<>'' || $annonce['mandCP']<>0) { $inter[$numInter]['type']='M'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo $inter[$numInter]['SIRET']=0; $inter[$numInter]['Nom']=$annonce['mandNom']; $inter[$numInter]['Repr']=$annonce['mandRepr']; $inter[$numInter]['adrNum']=''; $inter[$numInter]['adrBis']=''; $inter[$numInter]['adrType']=''; $inter[$numInter]['adrLib']=$annonce['mandAdresse']; $inter[$numInter]['CP']=$annonce['mandCP']; $inter[$numInter]['Ville']=$annonce['mandVille']; $inter[$numInter]['Tel']=''; $numInter++; } if ($annonce['creaNom']<>'' || $annonce['creaCP']<>0) { $inter[$numInter]['type']='R'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo $inter[$numInter]['SIRET']=0; $inter[$numInter]['Nom']=$annonce['creaNom']; $inter[$numInter]['Repr']=$annonce['creaRepr']; $inter[$numInter]['adrNum']=''; $inter[$numInter]['adrBis']=''; $inter[$numInter]['adrType']=''; $inter[$numInter]['adrLib']=$annonce['creaAdresse']; $inter[$numInter]['CP']=$annonce['creaCP']; $inter[$numInter]['Ville']=$annonce['creaVille']; $inter[$numInter]['Tel']=''; $numInter++; } if ($annonce['admNom']<>'' || $annonce['admCP']<>0) { $inter[$numInter]['type']='A'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo $inter[$numInter]['SIRET']=0; $inter[$numInter]['Nom']=$annonce['admNom']; $inter[$numInter]['Repr']=$annonce['admRepr']; $inter[$numInter]['adrNum']=''; $inter[$numInter]['adrBis']=''; $inter[$numInter]['adrType']=''; $inter[$numInter]['adrLib']=$annonce['admAdresse']; $inter[$numInter]['CP']=$annonce['admCP']; $inter[$numInter]['Ville']=$annonce['admVille']; $inter[$numInter]['Tel']=''; $numInter++; } /* if ($annonce['oppoNom']<>'' || $annonce['oppoCP']<>0) { $inter[$numInter]['type']='O'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo $inter[$numInter]['SIRET']=0; $inter[$numInter]['Nom']=$annonce['oppoNom']; $inter[$numInter]['Repr']=$annonce['oppoRepr']; $inter[$numInter]['adrNum']=''; $inter[$numInter]['adrBis']=''; $inter[$numInter]['adrType']=''; $inter[$numInter]['adrLib']=$annonce['oppoAdresse']; $inter[$numInter]['CP']=$annonce['oppoCP']; $inter[$numInter]['Ville']=$annonce['oppoVille']; $inter[$numInter]['Tel']=''; $numInter++; }*/ $tribunalCode=$iDb2->select('bodacc', 'Tribunal_Code', 'id='.$annonce['id'], false); $tribunalCode=$tribunalCode[0][0]; $refLigneClient=@$annonce['ref']; $tabEven2=explode(';',$annonce['typeEven']); $tabEven=array(); foreach ($tabEven2 as $even) { $versionEven=$iBodacc->getVersionEvenement($even); if ($versionEven==0 || $versionEven<=$versionEvenClient) $tabEven[]=$even; else { if ($even<2000) $even2=1999; elseif ($even<3000) $even2=2312; elseif ($even<4000) $even2=3999; elseif ($even<5000) $even2=4999; elseif ($even<6000) $even2=5999; elseif ($even<7000) $even2=6700; else $even2=1999; $tabEven[]=$even2; // echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Evènement $even non géré en v$versionEvenClient : $even2".EOL; } } $str= initstr('100', 3, '0', ALIGN_RIGHT) . // Type de ligne initstr($annonce['id'], 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce initstr(FILLER, 5) . // On garde la place pour le NIC initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année initstr(substr($annonce['Rubrique_Bodacc'],0,1), 1) . // Code Bodacc (A, B ou C) initstr(WDate::dateT('Y-m-d','Ymd',$annonce['Bodacc_Date_Parution']), 8) . // Date de parution du Bodacc initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif, // R=Rectif, S=Suppression initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce diff. de I, numéro de l'annonce corrigée initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parut°/année de annonce corrigée // (ex: 230A, 001B) // initstr($annonce['corrTexteRectificatif'], XXXXXX, '0', ALIGN_RIGHT) . // Si diff. I, // initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8, '0') . // Date de l'intégration en bae S&D initstr($refLigneClient, 18) . // REFERENCE DU CLIENT initstr($tribunalCode, 6) . initstr($annonce['RC'], 9) . // Numéro de RC (Registre du Commerce) de l'entreprise initstr($annonce['raisonSociale'], 150) . // Raison sociale de l'entreprise initstr($annonce['nomCommercial'], 100) . // Nom commercial de l'entreprise initstr($annonce['enseigne'], 100) . // Enseigne de l'établissement initstr($annonce['nationalite'], 30) . // Nationalité si Personne physique //initstr(MInsee::getFJInsee($annonce['siren']), 4) . // FJ codification Insee initstr('0000', 4) . // FJ codification Insee initstr($annonce['FJ'], 90) . // Forme juridique de l'entreprise déclarée au BODACC initstr($annonce['Capital'], 15, '0', ALIGN_RIGHT) . // Capital initstr($annonce['CapitalDev'], 3) . // Devise du capital (format ISO) // Adresse / 150 car initstr($annonce['adrNum'], 4, '0', ALIGN_RIGHT) . // initstr($annonce['adrIndRep'], 1) . // initstr($annonce['adrTypVoie'], 5) . initstr($annonce['adrLibVoie'], 50) . initstr($annonce['adrComp1'], 50) . initstr($annonce['adrComp2'], 40) . initstr($annonce['codePostal'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement initstr($annonce['villeSiege'], 45) . // Ville de l'établissement // Adresse du siège / 150 car initstr($annonce['adrNumSiege'], 4, '0', ALIGN_RIGHT) . // initstr($annonce['adrIndRepSiege'], 1) . // initstr($annonce['adrTypVoieSiege'], 5) . initstr($annonce['adrLibVoieSiege'], 50) . initstr($annonce['adrComp1Siege'], 50) . initstr($annonce['adrComp2Siege'], 40) . initstr($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement initstr($annonce['villeSiege'], 45) . // Ville de l'établissement initstr(implode('',$tabEven), 32, '0', ALIGN_RIGHT) . // Code Evènement Bodacc n°1 à 8 initstr($annonce['publicationNom'], 100) . // NOM du JAL si publication initstr(WDate::dateT('Y-m-d','Ymd',$annonce['publicationDate']), 8) . // Date de publication du JAL si publication initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateCessationPaiement']), 8) . // Date de cessation des paiements initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateJugement']), 8) . // Date du jugement initstr(FILLER, 1) . // FILLER (Replace type de création) initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateDebutActivite']), 8) . // Date de début d'activité initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateEffet']), 8) . // Date d'effet (Ventes/MMD) // ou Date clôture exercice si ann dépôt comptes initstr($annonce['VenteMt'], 15, '0', ALIGN_RIGHT) . // Montant de la vente initstr($annonce['VenteDev'], 3) . // Devise de la ventre initstr($annonce['Numero'], 35) . // Numéro de l'affaire au greffe initstr($inter[0]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo initstr($inter[0]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret initstr($inter[0]['Nom'], 80) . // Raison sociale initstr($inter[0]['Repr'], 80) . // Représentant initstr($inter[0]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie initstr($inter[0]['adrBis'], 1) . // Adresse, Bis/Ter initstr($inter[0]['adrType'], 4) . // Adresse, type de voie initstr($inter[0]['adrLib'], 32) . // Adresse, libellé de la voie initstr($inter[0]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal initstr($inter[0]['Ville'], 45) . // Adresse, commune initstr($inter[0]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone initstr($inter[1]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo initstr($inter[1]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret initstr($inter[1]['Nom'], 80) . // Raison sociale initstr($inter[1]['Repr'], 80) . // Représentant initstr($inter[1]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie initstr($inter[1]['adrBis'], 1) . // Adresse, Bis/Ter initstr($inter[1]['adrType'], 4) . // Adresse, type de voie initstr($inter[1]['adrLib'], 32) . // Adresse, libellé de la voie initstr($inter[1]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal initstr($inter[1]['Ville'], 45) . // Adresse, commune initstr($inter[1]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone initstr(FILLER/*$annonce['JugeCommissaireNom']*/, 30) . // NOM du JugeCommissaire initstr(FILLER/*$annonce['JugeCommissairePrenom']*/, 30) . // Prénom du JugeCommissaire initstr(FILLER/*$annonce['JugeCommissaireSupplNom']*/, 30) . // NOM du JugeCommissaire suppléant initstr(FILLER/*$annonce['JugeCommissaireSupplPrenom']*/, 30) . // Prénom du JugeCommissaire suppléant initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinDepotCreances']), 8) . // Date limite pour le dépôt des créances initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinObservation']), 8) . // Date de fin de la période d'observation initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8) . // Date d'insertion dans la base S&D ''; fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL); $nbLignes++; // if ($tabOptOutput['commentaire']==true && $annonce['commentaires']<>'') // fwrite($fp, '101'.initsrt($annonce['commentaires'],1500).$eol); // Commentaire textuel si nécessaire $enteteL= initstr($annonce['id'], 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce initstr(FILLER, 5) . // On garde la place pour le NIC initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année initstr(substr($annonce['Rubrique_Bodacc'],0,1), 1) . // Code Bodacc (A, B ou C) initstr(WDate::dateT('Y-m-d','Ymd',$annonce['Bodacc_Date_Parution']), 8) . // Date de parution du Bodacc initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif, // R=Rectificatif, S=Suppression initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce différent de I, numéro de l'annonce corrigée initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parution dans l'année de annonce corri(ex: 230A, 001B) initstr($refLigneClient, 18) . // REF CLI ''; if ($tabOptOutput[101]==true && $annonce['commentaires']<>'') // Commentaires fwrite($fp, genereMultiLigne('101', $enteteL, $annonce['commentaires'], $optionEOL, $nbLignes)); if ($tabOptOutput[102]==true && $annonce['activite']<>'') // Activité déclarée au Bodacc fwrite($fp, genereMultiLigne('102', $enteteL, $annonce['activite'], $optionEOL, $nbLignes)); if ($annonce['corrTexteRectificatif']<>'') // Texte rectificatif fwrite($fp, genereMultiLigne('103', $enteteL, $annonce['corrTexteRectificatif'], $optionEOL, $nbLignes)); if ($tabOptOutput[104]==true) { // Annonce Bodacc Complète $annoncetxt=$iDb2->select('bodacc', 'annonce', 'id='.$annonce['id'], false); $annoncetxt=$annoncetxt[0][0]; fwrite($fp, genereMultiLigne('104', $enteteL, $annoncetxt, $optionEOL, $nbLignes)); } if ($tabOptOutput[105]==true) { // Liste des dirigeants $annonceDir=$iDb2->select('bodacc_dirigeants', 'id, num, dateEffet, fonction, rs, nom, prenom, nomUsage', 'id='.$annonce['id'], true); $strDir=''; foreach ($annonceDir as $k=>$dir) { $strDir.=initstr(WDate::dateT('Y-m-d','Ymd',$dir['dateEffet']), 8, '0', ALIGN_RIGHT) . // Date de la prise de fonction initstr($dir['fonction'], 4) . // Code Fonction S&D initstr($dir['rs'], 80) . // Raison Sociale du dirigeant initstr($dir['nom'], 50) . // NOM du dirigeant initstr($dir['prenom'], 100) . // Prenom initstr($dir['usage'], 50); // Nom d'usage if ($k%6==0) $strDir.=initstr(' ', 28); else $strDir.=initstr(' ', 26); } fwrite($fp, genereMultiLigne('105', $enteteL, $strDir, $optionEOL, $nbLignes)); } if ($nbLignes%1000==1) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n"; } /** ** On génère la ligne de fin de fichier **/ $nbLignes++; $str= initstr('999', 3, '0', ALIGN_RIGHT) . // Type de ligne initstr(date('YmdHis'), 14) . // Date & Heure de fin génération du fichier initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client initstr($clientIdentifiant, 36) . // Identifiant Client initstr($typePrestaton, 32) . // Type de prestation initstr($nbLignes, 10, '0', ALIGN_RIGHT) . // Nombre de lignes Total du fichier ''; fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE)); // Pas de fin de ligne sur la dernière ligne fclose($fp); echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient :Fichier client terminé.".EOL; /** Mise à jour des numéros de tour et des date de dernières exécutions **/ if ($incrementationDesTour) { $iDbCrm=new WDB('sugarcrm'); $rep=$iDbCrm->update('cases_cstm', array('trtdatederniereexec_c'=>date('YmdHis'), 'trtnumerotour_c'=> $clientNumTourFichier), "id_c='".$tabAdherent['idPrestationBdd']."'"); } /** Conversion du fichier si nécessaire en CSV **/ if ($tabAdherent['formatEnvois']=='csv') { $ligneOut=''; $ligne001=$ligne100=$ligne104=$ligne999=0; $tabLignes=file(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'); $fichier_csv=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv'; $fp=fopen(REP_TEMP . $fichier_csv, 'w'); foreach ($tabLignes as $i=>$ligne) { $ecrireLignePre=false; $typeLigne=substr($ligne, 0, 3)*1; switch ($typeLigne) { case 1: // Ligne ignorée // Ecriture de l'entête $siren ='Siren'; $nic ='Nic'; $ref ='Référence'; $numPar ='Parution'; $bodacc ='Bodacc'; $datePar='Date parution'; $numAnn ='Numéro Annonce'; $cor ='Type Annonce'; $libTri ='Tribunal'; $numRC ='Numéro RCS'; $raisonS='Raison sociale'; $catEven='Chapitre'; $txtEven='Evènement(s)'; $dateEve='Date évènement'; $txtAnn ='Texte Annonce'; $ligne001++; break; case 100: // Structure Bodacc $ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$dateEve;$txtAnn"; $ligne100++; $siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce $nic = trim(substr($ligne, 22, 5 )); // Nic $ref = trim(substr($ligne, 71, 18 )); // Référence Client $numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année $bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C $datePar= WDate::dateT('Ymd','d/M/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ $numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc $typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce $corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion $corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ $corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion $corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion $dateEve1=substr($ligne, 1144, 8 ); // Date de jugezment $dateEve2=substr($ligne, 1161, 8 ); // Date d'effet, etc... if ($dateEve1>0) $dateEve=WDate::dateT('Ymd','d/M/Y',$dateEve1); elseif ($dateEve2>0) $dateEve=WDate::dateT('Ymd','d/M/Y',$dateEve2); else $dateEve=''; $cor=''; if ($typeAnn<>'I') $cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate); switch($typeAnn) { case 'I': $cor='Insertion'.$cor; break; case 'A': $cor='Additif'.$cor; break; case 'R': $cor='Rectificatif'.$cor; break; case 'S': $cor='Suppression'.$cor; break; default: break; } $codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc $libTri=$iBodacc->getTribunalNom($codeTri); $numRC = trim(substr($ligne, 95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise $raisonS= trim(substr($ligne, 104 , 150 )); // Raison sociale de l'entreprise $even=array(); $even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN $even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN $even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN $even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN $even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN $even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN $even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN $even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN $txtEven=''; foreach ($even as $codeEven) if ($codeEven<>0) { $txtEven.=$iBodacc->getEvenement($codeEven)." ($codeEven), "; $catEven=$iBodacc->getChapitreEvenement($codeEven); } else $txtEven.=''; $txtEven=substr($txtEven,0,strlen($txtEven)-2); $txtAnn=''; $ecrireLignePre=true; break; case 104: // Annonce $ligne104++; $txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce break; case 999: // Ligne ignorée $ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$dateEve;$txtAnn"; $ligne999++; $ecrireLignePre=true; break; default: // Ligne non gérée break; } if ($ecrireLignePre) fwrite($fp, $ligneOut.EOL); } fclose($fp); echo date ('Y/m/d - H:i:s')." - Conversion du fichier $fichier_csv terminée !".EOL; } /*Gzip ou zip zt envoi par mail ou dépot sur le site FTP*/ switch ($optionZip) { case 'zip': $zip = new ZipArchive; $ficProduction=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.zip'; $res = $zip->open($repProduction.$ficProduction, ZipArchive::CREATE); if ($res === TRUE) { // $zip->addFromString('test.txt', 'file content goes here'); $zip->addFile( REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'); if ($tabAdherent['formatEnvois']=='csv') $zip->addFile(REP_TEMP. $fichier_csv, $fichier_csv); $zip->close(); echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.zip OK...'.EOL; } else { echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Zip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL; } break; case 'gzip': $ficProduction= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.gz'; $string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'); $gz = gzopen($repProduction.$ficProduction,'w9'); if (!$gz) { echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL; } else { gzwrite($gz, $string); gzclose($gz); echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.gz OK...'.EOL; } if ($tabAdherent['formatEnvois']=='csv') { $ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv.gz'; $string=file_get_contents(REP_TEMP. $fichier_csv); $gz = gzopen($repProduction.$ficProduction_csv,'w9'); if (!$gz) { echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier $fichier_csv impossible !".EOL; } else { gzwrite($gz, $string); gzclose($gz); echo date ('Y/m/d - H:i:s')." - Compression du fichier $ficProduction_csv OK...".EOL; } } break; case 'bzip2': $ficProduction=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.bz2'; $string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'); $bz = bzopen($repProduction.$ficProduction,'w'); // Ne sait pas si le niveau de compression 1 à 9 est implémenté pour cette fonction if (!$bz) { echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 impossible pour ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL; } else { bzwrite($bz, $string, strlen($string)); bzclose($bz); echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.bz2 OK...'.EOL; } if ($tabAdherent['formatEnvois']=='csv') { $ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv.bz2'; $string=file_get_contents(REP_TEMP. $fichier_csv); $bz = bzopen($repProduction.$ficProduction_csv,'w'); if (!$bz) { echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 du fichier $fichier_csv impossible !".EOL; } else { bzwrite($bz, $string, strlen($string)); bzclose($bz); echo date ('Y/m/d - H:i:s')." - Compression du fichier $ficProduction_csv OK...".EOL; } } break; default: $ficProduction= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'; $ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv'; if (!copy(REP_TEMP.$ficProduction, $repProduction.$ficProduction)) echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction impossible !".EOL; else echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été créé...".EOL; if ($tabAdherent['formatEnvois']=='csv') { if (!copy(REP_TEMP.$ficProduction_csv, $repProduction.$ficProduction_csv)) echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction_csv impossible !".EOL; else echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été créé...".EOL; } break; } /** Sauvegarde des fichiers dans clients **/ $repBakClient='/home/data/clients/'.strtolower($tabAdherent['nomClient']); if (!file_exists($repBakClient)) { echo date ('Y/m/d - H:i:s')." - ATTENTION : Les dossiers BACKUP du client ne sont pas correctement créés !".EOL; if (!file_exists($repBakClient) && mkdir($repBakClient)) echo date ('Y/m/d - H:i:s')." - Le dossier Backup du client a été créé ($repBakClient)".EOL; // if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv')) // echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a été créé ($repFtpClient/recv)".EOL; } if (!copy($repProduction.$ficProduction, $repBakClient.'/'.$ficProduction)) echo date ('Y/m/d - H:i:s')." - ERREUR : Copy du fichier $ficProduction dans Backup impossible !".EOL; else echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été historisé...".EOL; if ($tabAdherent['formatEnvois']=='csv') { if (!copy($repProduction.$ficProduction_csv, $repBakClient.'/'.$ficProduction_csv)) echo date ('Y/m/d - H:i:s')." - ERREUR : Historisation du fichier $ficProduction_csv impossible !".EOL; else echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été historisé...".EOL; } /** Si FTP, déplacement dans les dossiers adéquats **/ if ($tabAdherent['supportPrestation']=='ftp' || $tabAdherent['supportPrestation']=='web') {//$repProduction.$ficProduction $repFtpClient='/home/data/ftp/'.strtolower($tabAdherent['nomClient']); if (!file_exists($repFtpClient) || !file_exists($repFtpClient.'/recv')) { echo date ('Y/m/d - H:i:s')." - ATTENTION : Les dossiers FTP du client ne sont pas correctement créés !".EOL; if (!file_exists($repFtpClient) && mkdir($repFtpClient)) echo date ('Y/m/d - H:i:s')." - Le dossier FTP du client a été créé ($repFtpClient)".EOL; if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv')) echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a été créé ($repFtpClient/recv)".EOL; } if (!move($repProduction.$ficProduction, $repFtpClient.'/recv/'.$ficProduction)) echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction dans FTP/RECV impossible !".EOL; else echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été déplacé dans FTP/RECV...".EOL; if ($tabAdherent['formatEnvois']=='csv') { if (!move($repProduction.$ficProduction_csv, $repFtpClient.'/recv/'.$ficProduction_csv)) echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction_csv dans FTP/RECV impossible !".EOL; else echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été déplacé dans FTP/RECV...".EOL; } } } echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n"; die(); ?>