2012-10-16 07:44:31 +00:00
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
< ? php
if ( ! defined ( 'VERSION_FICHIER_BODACC' ))
define ( 'VERSION_FICHIER_BODACC' , '0106' );
/**
* @ todo
2013-06-19 08:24:49 +00:00
* 2. Pouvoir faire du multiligne avec : 106 Libell<EFBFBD> du P<EFBFBD> rim<EFBFBD> tre de la vente
* 5. JugesCommissaires <EFBFBD> int<EFBFBD> grer correctement
2012-10-16 07:44:31 +00:00
*/
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' );
$repProduction = '/mnt/samba/partage/production/' ;
$incrementationDesTour = true ;
$typePrestaton = 'diffusionBodacc' ;
$ignoreDateDerExec = $retroActivite = false ;
$codeAdherent = '' ;
$strInfoScript = 'Usage : ' . basename ( $argv [ 0 ]) . " [OPTION]
2013-06-19 08:24:49 +00:00
G<EFBFBD> n<EFBFBD> re les fichiers des clients en surveillance ou diffusion des annonces BODACC .
2012-10-16 07:44:31 +00:00
Options :
2013-06-19 08:24:49 +00:00
- d Clients en Diffusion Bodacc ( par d<EFBFBD> faut )
2012-10-16 07:44:31 +00:00
- s Clients en Surveillance Bodacc
2013-06-19 08:24:49 +00:00
- e Ne pas tenir compte de la date de derni<EFBFBD> re ex<EFBFBD> cution du script
- i Ne pas ex<EFBFBD> cuter en r<EFBFBD> el ( pas de MAJ des infos d ' ex<EFBFBD> cution : n<EFBFBD> tour , dates trt , fichier en r<EFBFBD> p tempo ... )
- c : AAA Limiter le traitement au fichier de l ' abonn<EFBFBD> AAA
- r : XX Faire une r<EFBFBD> troactivt<EFBFBD> de XX jours
2012-10-16 07:44:31 +00:00
" ;
$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' :
$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' );
$iInsee = new MInsee ();
$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 ) {
2013-06-19 08:24:49 +00:00
case '102' : // Activit<69> d<> clar<61> e au Bodacc
2012-10-16 07:44:31 +00:00
case '103' : // Texte rectificatif
2013-06-19 08:24:49 +00:00
case '104' : // Annonce Bodacc Compl<70> te
2012-10-16 07:44:31 +00:00
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 :
2013-06-19 08:24:49 +00:00
die ( " ERREUR : Structure de sortie n<> $typeLigne non prise en charge ! \n " );
2012-10-16 07:44:31 +00:00
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 ;
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du traitement diffusion BODACC. \n " ;
2012-10-16 07:44:31 +00:00
2013-06-19 08:24:49 +00:00
/** On r<> cup<75> re la liste des Adh<64> rents **/
2012-10-16 07:44:31 +00:00
//die(print_r(getListeAdherents('extranet')));
$tabAdherents = getListeAdherents ( $typePrestaton , $codeAdherent );
//print_r($tabAdherents);die();
$nbClients = count ( $tabAdherents );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Il y a $nbClients client(s) <20> servir en diffusion BODACC. " . EOL ;
2012-10-16 07:44:31 +00:00
//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' ;
2013-06-19 08:24:49 +00:00
/** Le client pr<70> f<EFBFBD> re un param<61> trage UNIX ou Window pour ses fins de lignes **/
2012-10-16 07:44:31 +00:00
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 ;
2013-06-19 08:24:49 +00:00
if ( $dateDebutPrestation && $dateDebutPrestation > DATE ) // La date de d<> marrage de la prestation n'est pas encore arriv<69> e
2012-10-16 07:44:31 +00:00
{
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : La prestation d<> marre le $dateDebutPrestation ! " . EOL ;
2012-10-16 07:44:31 +00:00
continue ;
}
2013-06-19 08:24:49 +00:00
if ( $dateFinPrestation && DATE > $dateFinPrestation ) // La date de fin de la prestation est r<> volue
2012-10-16 07:44:31 +00:00
{
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : Fin de la prestation le $dateFinPrestation (Derni<6E> re ex<65> cution le $dateDernierTraitement ) ! " . EOL ;
2012-10-16 07:44:31 +00:00
continue ;
}
if ( $dateDernierTraitement && substr ( $dateDernierTraitement , 0 , 8 ) * 1 == DATE * 1 )
2013-06-19 08:24:49 +00:00
{ echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : Traitement d<> j<EFBFBD> ex<65> cut<75> aujourd'hui ! " . EOL ;
2012-10-16 07:44:31 +00:00
continue ;
} elseif ( $dateDernierTraitement == 0 ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : Jamais ex<65> cut<75> e pour ce client ! " . EOL ;
2012-10-16 07:44:31 +00:00
$dateDernierTraitement = false ;
2013-06-19 08:24:49 +00:00
/* Il faudra v<> rifier si on g<> n<EFBFBD> re le stocke et depuis quand sinon on prond le dernier Bodacc */
} // Bloc a d<> commenter
2012-10-16 07:44:31 +00:00
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : Export des annonces en cours... (dernier traitement le $dateDernierTraitement ) " . EOL ;
2012-10-16 07:44:31 +00:00
/**
2013-06-19 08:24:49 +00:00
** On g<EFBFBD> n<EFBFBD> re la ligne d ' ent<EFBFBD> te
2012-10-16 07:44:31 +00:00
**/
$fp = fopen ( REP_TEMP . $typePrestaton . '_' . $clientIdentifiant . '_' . DATETIME . '.txt' , 'w' );
2013-06-19 08:24:49 +00:00
if ( $fp == false ) die ( 'ERREUR : Impossible de cr<63> er le fichier !' );
2012-10-16 07:44:31 +00:00
error_reporting ( E_ALL ^ E_NOTICE );
$str = initstr ( '001' , 3 , '0' , ALIGN_RIGHT ) . // Type de ligne
2013-06-19 08:24:49 +00:00
initstr ( date ( 'YmdHis' ), 14 ) . // Date de g<> n<EFBFBD> ration du fichier
initstr ( $clientNumTourFichier , 10 , '0' , ALIGN_RIGHT ) . // Num<75> ro de tour du fichier pour le client
2012-10-16 07:44:31 +00:00
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 ;
/**
2013-06-19 08:24:49 +00:00
** On g<EFBFBD> n<EFBFBD> re les lignes de d<EFBFBD> tail
2012-10-16 07:44:31 +00:00
**/
$strRubrique = '' ;
$tabRubCollecte = array ();
2013-06-19 08:24:49 +00:00
if ( strpos ( $tabAdherent [ 'optionPrestation' ], 'comptes' )) { // Export du Bodacc C - D<> p<EFBFBD> t des comptes
2012-10-16 07:44:31 +00:00
$strRubrique .= " 'comptes', " ;
$tabRubCollecte [] = " typeEven LIKE '3%' " ;
}
2013-06-19 08:24:49 +00:00
if ( strpos ( $tabAdherent [ 'optionPrestation' ], 'creations' )) { // Export des cr<63> ations
2012-10-16 07:44:31 +00:00
$strRubrique .= " 'creations', " ;
$tabRubCollecte [] = " typeEven LIKE '4%' " ;
}
if ( strpos ( $tabAdherent [ 'optionPrestation' ], 'mmd' )) { // Export des MMD
$strRubrique .= " 'mmd', " ;
$tabRubCollecte [] = " typeEven LIKE '2%' " ;
}
if ( strpos ( $tabAdherent [ 'optionPrestation' ], 'procol' )) { // Export des ProCol
$strRubrique .= " 'procol', " ;
$tabRubCollecte [] = " typeEven LIKE '1%' " ;
}
if ( strpos ( $tabAdherent [ 'optionPrestation' ], 'radiations' )) { // Export des radiations
$strRubrique .= " 'radiations', " ;
$tabRubCollecte [] = " typeEven LIKE '6%' " ;
}
if ( strpos ( $tabAdherent [ 'optionPrestation' ], 'ventes' )) { // Export des ventes cessions
$strRubrique .= " 'ventes', " ;
$tabRubCollecte [] = " typeEven LIKE '5%' " ;
}
2013-06-19 08:24:49 +00:00
if ( strpos ( $tabAdherent [ 'optionPrestation' ], '101' )) // Commentaire inclus dans l'annonce si n<> cessaire
2012-10-16 07:44:31 +00:00
$tabOptOutput [ 101 ] = true ; else $tabOptOutput [ 101 ] = false ;
2013-06-19 08:24:49 +00:00
if ( strpos ( $tabAdherent [ 'optionPrestation' ], '102' )) // Activite d<> clar<61> au Bodacc
2012-10-16 07:44:31 +00:00
$tabOptOutput [ 102 ] = true ; else $tabOptOutput [ 102 ] = false ;
2013-06-19 08:24:49 +00:00
if ( strpos ( $tabAdherent [ 'optionPrestation' ], '104' )) // Annonce compl<70> te au format texte
2012-10-16 07:44:31 +00:00
$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 ;
$collecte = false ;
if ( preg_match ( '/^collecte=oui/mUi' , $tabAdherent [ 'optionPrestation' ], $matches ))
$collecte = true ;
/* $tabSiren2 = array ();
foreach ( $tabSiren as $siren ) {
$tabSiren2 [] = $siren [ 'siren' ];
}
sort ( $tabSiren2 );
$tabSiren = $tabSiren2 ;
unset ( $tabSiren2 );
//die();*/
$fields = " d.id, d.siren, d.sirenValide, CONCAT('BOD-',SUBSTRING(d.Rubrique_Bodacc,1,1)) as source, d.Bodacc_Num, d.Bodacc_Date_Parution, d.Num_Annonce, d.Rubrique_Bodacc, d.Rubrique, d.typeAnnonce, d.corrNum_Annonce, d.corrBodacc_Date_Parution, d.corrPage, d.corrNumParution, d.corrTexteRectificatif, RC, d.raisonSociale, nomCommercial, d.enseigne, nationalite, FJ, Capital, CapitalDev, d.Tribunal_Code, 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, 'M' As inter1type, 0 AS inter1id, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, 'R' As inter2type, 0 AS inter2id, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, 'A' As inter3type, 0 AS inter3id, administrateur, admNom, admRepr, admAdresse, admCP, admVille, 'O' AS inter4type, 0 AS inter4id, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert " ;
$fieldsCol = " a.id, a.siren, a.sirenValide, CONCAT(a.source,'-',a.parutionIdJal) as source, 0 as Bodacc_Num, a.dateSource as Bodacc_Date_Parution, 0 as Num_Annonce, '' as Rubrique_Bodacc, '' as Rubrique, 'Insertion' as typeAnnonce, '' as corrNum_Annonce, '' as corrBodacc_Date_Parution, '' as corrPage, '' as corrNumParution, '' AS corrTexteRectificatif, '' as RC, a.raisonSociale, '' AS nomCommercial, '' AS enseigne, '' AS nationalite, '' AS FJ, '' AS Capital, '' AS CapitalDev, a.tribunal as Tribunal_Code, adresse, '' AS adrNum, '' AS adrIndRep, '' AS adrTypVoie, '' AS adrLibVoie, '' AS adrComp1, '' AS adrComp2, a.codePostal*1 AS codePostal, a.ville, adresse AS adresseSiege, '' AS adrSiegeNum, '' AS adrSiegeIndRep, '' AS adrSiegeTypVoie, '' AS adrSiegeLibVoie, '' AS adrSiegeComp1, '' AS adrSiegeComp2, a.codePostal*1 as codePostalSiege, a.ville as villeSiege, nouvDir AS administration, nouvActivite as activite, CONCAT(a.typeEven,'',REPLACE(strEven,';','')) AS typeEven, '' AS commentaires, a.dateEffetFinP as dateEffet, '' AS publication, '' AS publicationNom, '' AS publicationDate, '' AS fusion, '' AS dateDebutActivite, '' as dateCessationActivite, a.dateCessationPaiement, a.dateJugement, '' AS Numero, montant AS VenteMt, 'EUR' AS VenteDev, '' AS bienAcqui, inter1type, inter1id, inter1nom AS Mandataire, inter1nom AS mandNom, '' AS mandRepr, '' AS mandAdresse, '' AS mandCP, '' AS mandVille, '' AS JugeCommissaire, '' AS jugeCommissaireSuppleant, inter2type, inter2id, inter2nom AS ReprCreanciers, inter2nom AS creaNom, '' AS creaRepr, '' AS creaAdresse, '' AS creaCP, '' AS creaVille, inter3type, inter3id, inter3nom AS administrateur, inter3nom AS admNom, '' AS admRepr, '' AS admAdresse, '' AS admCP, '' AS admVille, 'O' AS inter4type, 0 AS inter4id, '' AS oppositions, '' AS oppoNom, '' AS oppoRepr, '' AS oppoAdresse, '' AS oppoCP, '' AS oppoVille, '' AS perimetre, '' AS dateFinDepotCreances, '' AS delaiDepotCreances, '' AS dateFinObservation, '' AS FinObservationBodacc, a.dateInsert " ;
$where = $whereCol = '1' ;
2013-06-19 08:24:49 +00:00
// On filtre les rubriques demand<6E> es
2012-10-16 07:44:31 +00:00
if ( $strRubrique <> '' ) {
$where .= ' AND Rubrique IN(' . substr ( $strRubrique , 0 , strlen ( $strRubrique ) - 1 ) . ') ' ;
if ( count ( $tabRubCollecte ) > 0 )
$whereCol .= ' AND (' . implode ( ' OR ' , $tabRubCollecte ) . ') ' ;
}
2013-06-19 08:24:49 +00:00
// On ne prend que les derni<6E> res annonces depuis la derni<6E> re ex<65> cution de la prestation pour le client
2012-10-16 07:44:31 +00:00
if ( $dateDernierTraitement ) {
if ( ! $retroActivite ) {
$where .= " AND (d.dateInsert> $dateDernierTraitement OR d.dateUpdate> $dateDernierTraitement ) " ;
$whereCol .= " AND a.dateInsert> $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) ) " ;
$whereCol .= " AND (a.dateInsert> $dateDernierTraitement OR (a.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) ) " ;
}
}
2013-06-19 08:24:49 +00:00
// ... sinon on prend les annonces depuis la date de d<> but de la prestation
2012-10-16 07:44:31 +00:00
elseif ( $dateDebutPrestation )
if ( ! $retroActivite ) {
$where .= " AND (d.dateInsert>' $dateDebutPrestation ' OR d.dateUpdate>' $dateDebutPrestation ') " ;
$whereCol .= " AND a.dateInsert>' $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) ) " ;
$whereCol .= " AND (a.dateInsert>' $dateDebutPrestation ' OR (a.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'))') " ;
$whereCol .= " AND a.dateInsert>='MAX(DATE_FORMAT(a.dateInsert,'%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) ) " ;
} */
2013-06-19 08:24:49 +00:00
// $where.=" AND Bodacc_Date_Parution>'2007-11-01' "; // Mederic a supprimer apr<70> s la r<> tro du 22 mai 2008
2012-10-16 07:44:31 +00:00
if ( $typePrestaton == 'diffusionBodacc' ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : diffusion... " . EOL ;
2012-10-16 07:44:31 +00:00
$tables = 'bodacc_detail d' ;
$tablesCol = 'annonces a' ;
// 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' ;
$fieldsCol = 'a.id' ;
$tables = 'bodacc_detail d, etablissements e' ;
$tablesCol = 'annonces a, 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; " ;
$whereCol .= " AND a.siren=e.siren AND a.siren<>0 AND (e.ape_etab IN ( $strNaf ) OR e.ape_entrep IN ( $strNaf )) AND DATEDIFF(NOW(), dateJugement)<=60 GROUP BY a.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 );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : $nbSirenClient unit<69> s en surveillance... " . EOL ;
2012-10-16 07:44:31 +00:00
$fields .= ', s.ref' ;
$fieldsCol .= ', s.ref' ;
$tables = 'bodacc_detail d, surveillances_listes s' ;
$tablesCol = 'annonces a, surveillances_listes s' ;
$where .= " AND d.siren=s.siren AND s.siren<>0 AND s.idClient=' $clientIdentifiant ' AND s.dateSuppr='0000-00-00' " ;
$whereCol .= " AND a.siren=s.siren AND a.siren<>0 AND s.idClient=' $clientIdentifiant ' AND s.dateSuppr='0000-00-00' " ;
if ( ! $retroActivite ) {
$where .= " AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 " ;
$whereCol .= " AND DATEDIFF(NOW(), dateJugement)<=60 " ;
}
/* dateAjout dateConf dateSuppr rs cp ville indTrt dateDerEnvoi
Modifier SURBODPRDFTSMEDERIC 484968573 00010 201278081 2008 - 04 - 04 0000 - 00 - 00 0000 - 00 - 00 */
}
2013-06-19 08:24:49 +00:00
else die ( 'Type de prestation non g<> r<EFBFBD> e : ' . $typePrestaton . EOL );
2012-10-16 07:44:31 +00:00
//$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; // NE PAS ENVOYER D'ANNONCES DONT LES DELAIS DE FORCLUSION SONT PASSEES
if ( $collecte ) {
$query = " SELECT $fields FROM $tables WHERE $where UNION SELECT $fieldsCol FROM $tablesCol WHERE $whereCol " ;
echo date ( 'Y/m/d - H:i:s' ) . " - $query ; " . EOL ;
$res = $iDb -> query ( $query );
$nbAnnonces = mysql_num_rows ( $res );
$strCollecte = '(avec Collecte)' ;
} else {
echo date ( 'Y/m/d - H:i:s' ) . " - SELECT $fields FROM $tables WHERE $where " . EOL ;
2013-06-19 08:24:49 +00:00
$nbAnnonces = $iDb -> select ( $tables , $fields , $where , true , MYSQL_ASSOC , true ); // G<> rer la table surveillance
2012-10-16 07:44:31 +00:00
$strCollecte = '(Bodacc seul)' ;
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : $nbAnnonces annonces <20> traiter $strCollecte ... " . EOL ;
//echo date ('Y/m/d - H:i:s')." - Prestation n<> $numPrestation, Client $nomClient : D<> but de g<> n<EFBFBD> ration du fichier client en version $versionEvenClient...".EOL;
2012-10-16 07:44:31 +00:00
//if ($collecte) die();
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 );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : $nbAnnonces liens entrep/annonces <20> traiter... " . EOL ;
2012-10-16 07:44:31 +00:00
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient : D<> but de g<> n<EFBFBD> ration du fichier client en version $versionEvenClient ... " . EOL ;
2012-10-16 07:44:31 +00:00
//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 )) {
2013-06-19 08:24:49 +00:00
/** Marquer les liens REF / SIREN envoy<EFBFBD> es <EFBFBD> chaque client
2012-10-16 07:44:31 +00:00
**/
$numInter = 0 ;
$inter = $interType = 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 ++ ;
//$interType[]='M';
}
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 ++ ;
//$interType[]='R';
}
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 ++ ;
//$interType[]='A';
}
/* 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 ++ ;
//$interType[]='O';
} */
$avecMand = false ;
$tabEven2 = explode ( ';' , $annonce [ 'typeEven' ]);
if ( $annonce [ 'siren' ] * 1 > 100 && ( count ( $interType ) == 0 || $collecte ))
foreach ( $tabEven2 as $even )
if ( substr ( $even , 0 , 1 ) * 1 == 1 || substr ( $even , 0 , 1 ) * 1 == 5 )
$avecMand = true ;
if ( $avecMand ) {
2013-06-19 08:24:49 +00:00
/** On doit recherche des mandataires absent ou non d<> cod<6F> s de l'annonce Bodacc Texte **/
2012-10-16 07:44:31 +00:00
$tabTypes = array ( 'A' , 'C' , 'L' , 'M' , 'R' , 'O' );
for ( $iInter = 1 ; $iInter < 4 ; $iInter ++ ) {
$tabMand = $iDb2 -> select ( 'annonces' , 'inter' . $iInter . 'type, inter' . $iInter . 'id, inter' . $iInter . 'nom, complement' , 'siren=' . $annonce [ 'siren' ] . " AND inter " . $iInter . " type IN (' " . implode ( " ',' " , $tabTypes ) . " ') AND (inter " . $iInter . " id>0 OR inter " . $iInter . " nom<>'' OR complement LIKE 'Mandataire%') ORDER BY dateInsert DESC " , false , MYSQL_ASSOC );
$interNom = $interTel = $interCp = $interVille = '' ;
$interSiren = 0 ;
foreach ( $tabMand as $mand ) {
2013-06-19 08:24:49 +00:00
// As t'on d<> j<EFBFBD> trait<69> ce type de mandataire ?
2012-10-16 07:44:31 +00:00
if ( in_array ( $mand [ 'inter' . $iInter . 'type' ], $interType )) continue ;
//print_r($annonce);
$mandId = $mand [ 'inter' . $iInter . 'id' ];
if ( $mandId > 0 ) {
2013-06-19 08:24:49 +00:00
// Il y a un mandataire avec un identifiant num<75> rique
2012-10-16 07:44:31 +00:00
$tabTmp = $iDb2 -> select ( 'tabMandataires' , 'id, sirenGrp, sirenMand, Nom, Prenom, type, adresse, adresseComp, cp, ville, tel, fax, email, web' , 'id=' . $mandId , true , MYSQL_ASSOC );
$mand2 = $tabTmp [ 0 ];
$adr = $iInsee -> structureVoie ( $mand2 [ 'adresse' ]);
$interNom = $mand2 [ 'Nom' ];
$interSiren = $mand2 [ 'sirenMand' ] * 1 ;
if ( $interSiren == 0 ) $interSiren = $mand2 [ 'sirenGrp' ] * 1 ;
$interCp = $mand2 [ 'cp' ] * 1 ;
$interVille = strtoupper ( $mand2 [ 'ville' ]);
$interTel = strtr ( $mand2 [ 'tel' ], array ( ' ' => '' , ',' => '' , '.' => '' , '-' => '/' , '-' => '' )) * 1 ;
} else {
2013-06-19 08:24:49 +00:00
// Il y a un mandataire sans identifiant num<75> rique
2012-10-16 07:44:31 +00:00
if ( trim ( $mand [ 'inter' . $iInter . 'nom' ]) == '' && substr ( $mand [ 'complement' ], 0 , 10 ) == 'Mandataire' )
2013-06-19 08:24:49 +00:00
// Uniquement avec le nom du mandataire en compl<70> ment
2012-10-16 07:44:31 +00:00
$interNom = substr ( $mand [ 'complement' ], 13 , strlen ( $mand [ 'complement' ]) - 13 );
else {
2013-06-19 08:24:49 +00:00
if ( preg_match ( '/^(.*), T<> l<EFBFBD> phone \: (.*)$/Ui' , $mand [ 'inter' . $iInter . 'nom' ], $matches )) {
2012-10-16 07:44:31 +00:00
$interTel = strtr ( $matches [ 2 ], array ( ' ' => '' , ',' => '' , '.' => '' , '-' => '/' , '-' => '' )) * 1 ;
$mand [ 'inter' . $iInter . 'nom' ] = $matches [ 1 ];
}
$tabTmp = explode ( ' ' , $mand [ 'inter' . $iInter . 'nom' ]);
if ( count ( $tabTmp ) > 1 ) {
$interNom = $tabTmp [ 0 ];
unset ( $tabTmp [ 0 ]);
$adr = $iInsee -> structureVoie ( trim ( implode ( ' ' , $tabTmp )));
$interCp = $adr [ 'cp' ] * 1 ;
$interVille = $adr [ 'ville' ];
}
2013-06-19 08:24:49 +00:00
// echo $mand['inter'.$iInter.'nom']." : Nom=$interNom, T<> l=$interTel, Adresse=";
2012-10-16 07:44:31 +00:00
// print_r($adr);
}
$inter [ $numInter ][ 'type' ] = $mand [ 'inter' . $iInter . 'type' ]; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
$inter [ $numInter ][ 'SIRET' ] = $interSiren . '00000' ;
$inter [ $numInter ][ 'Nom' ] = trim ( strtoupper ( $interNom ));
$inter [ $numInter ][ 'Repr' ] = '' ;
$inter [ $numInter ][ 'adrNum' ] = $adr [ 'num' ];
$inter [ $numInter ][ 'adrBis' ] = $adr [ 'indRep' ];
$inter [ $numInter ][ 'adrType' ] = trim ( strtoupper ( $adr [ 'typeVoie' ]));
$inter [ $numInter ][ 'adrLib' ] = trim ( strtoupper ( $adr [ 'libVoie' ]));
$inter [ $numInter ][ 'CP' ] = $interCp ;
$inter [ $numInter ][ 'Ville' ] = trim ( strtoupper ( $interVille ));
$inter [ $numInter ][ 'Tel' ] = $interTel ;
$numInter ++ ;
$interType [] = $mand [ 'inter' . $iInter . 'type' ];
}
}
}
}
$tribunalCode = $annonce [ 'Tribunal_Code' ];
$refLigneClient =@ $annonce [ 'ref' ];
$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 ;
2013-06-19 08:24:49 +00:00
// echo date ('Y/m/d - H:i:s')." - Prestation n<> $numPrestation, Client $nomClient : Ev<45> nement $even non g<> r<EFBFBD> en v$versionEvenClient : $even2".EOL;
2012-10-16 07:44:31 +00:00
}
}
$tabTmp = explode ( '-' , $annonce [ 'source' ]);
$source = $tabTmp [ 0 ];
if ( $source == 'BOD' )
$codeSourceBodacc = substr ( $annonce [ 'Rubrique_Bodacc' ], 0 , 1 );
else {
switch ( substr ( $annonce [ 'source' ], 0 , 1 )) {
case 'G' : // G=Greffes
case 'P' : // P=Inpi
2013-06-19 08:24:49 +00:00
case 'J' : // J=Journal d'Annonces L<> gales
2012-10-16 07:44:31 +00:00
case 'T' : // T=Tribunal
$codeSourceBodacc = substr ( $annonce [ 'source' ], 0 , 1 ); break ;
default : $codeSourceBodacc = 'J' ; break ;
}
}
$str = initstr ( '100' , 3 , '0' , ALIGN_RIGHT ) . // Type de ligne
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'id' ], 10 , '0' , ALIGN_RIGHT ) . // Num<75> ro unique d'identification interne d'une annonce
initstr ( $annonce [ 'siren' ], 9 , '0' , ALIGN_RIGHT ) . // Siren de l'entreprise concern<72> e par l'annonce
2012-10-16 07:44:31 +00:00
initstr ( FILLER , 5 ) . // On garde la place pour le NIC
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'Bodacc_Num' ], 3 , '0' , ALIGN_RIGHT ) . // Num<75> ro de parution du Bodacc dans l'ann<6E> e
2012-10-16 07:44:31 +00:00
initstr ( $codeSourceBodacc , 1 ) . // Code Bodacc (A, B ou C)
initstr ( WDate :: dateT ( 'Y-m-d' , 'Ymd' , $annonce [ 'Bodacc_Date_Parution' ]), 8 ) . // Date de parution du Bodacc
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'Num_Annonce' ], 5 , '0' , ALIGN_RIGHT ) . // Num<75> ro de l'annonce dans le Bodacc
2012-10-16 07:44:31 +00:00
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
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'corrNum_Annonce' ], 5 , '0' , ALIGN_RIGHT ) . // Si annonce diff. de I, num<75> ro de l'annonce corrig<69> e
initstr ( WDate :: dateT ( 'Y-m-d' , 'Ymd' , $annonce [ 'corrBodacc_Date_Parution' ]), 8 ) . // Si diff. I, date du Bodacc de l'annonce corrig<69> e
initstr ( $annonce [ 'corrPage' ], 6 , '0' , ALIGN_RIGHT ) . // Si diff. I, page du Bodacc de l'annonce corrig<69> e
initstr ( $annonce [ 'corrNumParution' ], 4 , '0' , ALIGN_RIGHT ) . // Si diff. I, Num parut<75> /ann<6E> e de annonce corrig<69> e
2012-10-16 07:44:31 +00:00
// (ex: 230A, 001B)
// initstr($annonce['corrTexteRectificatif'], XXXXXX, '0', ALIGN_RIGHT) . // Si diff. I,
2013-06-19 08:24:49 +00:00
// initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8, '0') . // Date de l'int<6E> gration en bae S&D
2012-10-16 07:44:31 +00:00
initstr ( $refLigneClient , 18 ) . // REFERENCE DU CLIENT
initstr ( $tribunalCode , 6 ) .
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'RC' ], 9 ) . // Num<75> ro de RC (Registre du Commerce) de l'entreprise
2012-10-16 07:44:31 +00:00
initstr ( $annonce [ 'raisonSociale' ], 150 ) . // Raison sociale de l'entreprise
initstr ( $annonce [ 'nomCommercial' ], 100 ) . // Nom commercial de l'entreprise
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'enseigne' ], 100 ) . // Enseigne de l'<27> tablissement
initstr ( $annonce [ 'nationalite' ], 30 ) . // Nationalit<69> si Personne physique
2012-10-16 07:44:31 +00:00
//initstr(MInsee::getFJInsee($annonce['siren']), 4) . // FJ codification Insee
initstr ( '0000' , 4 ) . // FJ codification Insee
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'FJ' ], 90 ) . // Forme juridique de l'entreprise d<> clar<61> e au BODACC
2012-10-16 07:44:31 +00:00
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 ) .
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'codePostal' ], 5 , '0' , ALIGN_RIGHT ) . // Code Postal de l'<27> tablissement
initstr ( $annonce [ 'villeSiege' ], 45 ) . // Ville de l'<27> tablissement
// Adresse du si<73> ge / 150 car
2012-10-16 07:44:31 +00:00
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 ) .
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'codePostalSiege' ], 5 , '0' , ALIGN_RIGHT ) . // Code Postal de l'<27> tablissement
initstr ( $annonce [ 'villeSiege' ], 45 ) . // Ville de l'<27> tablissement
initstr ( implode ( '' , $tabEven ), 32 , '0' , ALIGN_RIGHT ) . // Code Ev<45> nement Bodacc n<> 1 <20> 8
2012-10-16 07:44:31 +00:00
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
2013-06-19 08:24:49 +00:00
initstr ( FILLER , 1 ) . // FILLER (Replace type de cr<63> ation)
initstr ( WDate :: dateT ( 'Y-m-d' , 'Ymd' , $annonce [ 'dateDebutActivite' ]), 8 ) . // Date de d<> but d'activit<69>
2012-10-16 07:44:31 +00:00
initstr ( WDate :: dateT ( 'Y-m-d' , 'Ymd' , $annonce [ 'dateEffet' ]), 8 ) . // Date d'effet (Ventes/MMD)
2013-06-19 08:24:49 +00:00
// ou Date cl<63> ture exercice si ann d<> p<EFBFBD> t comptes
2012-10-16 07:44:31 +00:00
initstr ( $annonce [ 'VenteMt' ], 15 , '0' , ALIGN_RIGHT ) . // Montant de la vente
initstr ( $annonce [ 'VenteDev' ], 3 ) . // Devise de la ventre
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'Numero' ], 35 ) . // Num<75> ro de l'affaire au greffe
2012-10-16 07:44:31 +00:00
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
2013-06-19 08:24:49 +00:00
initstr ( $inter [ 0 ][ 'Repr' ], 80 ) . // Repr<70> sentant
initstr ( $inter [ 0 ][ 'adrNum' ], 4 , '0' , ALIGN_RIGHT ) . // Adresse, num<75> ro dans la voie
2012-10-16 07:44:31 +00:00
initstr ( $inter [ 0 ][ 'adrBis' ], 1 ) . // Adresse, Bis/Ter
initstr ( $inter [ 0 ][ 'adrType' ], 4 ) . // Adresse, type de voie
2013-06-19 08:24:49 +00:00
initstr ( $inter [ 0 ][ 'adrLib' ], 32 ) . // Adresse, libell<6C> de la voie
2012-10-16 07:44:31 +00:00
initstr ( $inter [ 0 ][ 'CP' ], 5 , '0' , ALIGN_RIGHT ) . // Adresse, code Postal
initstr ( $inter [ 0 ][ 'Ville' ], 45 ) . // Adresse, commune
2013-06-19 08:24:49 +00:00
initstr ( $inter [ 0 ][ 'Tel' ], 10 , '0' , ALIGN_RIGHT ) . // T<> l<EFBFBD> phone
2012-10-16 07:44:31 +00:00
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
2013-06-19 08:24:49 +00:00
initstr ( $inter [ 1 ][ 'Repr' ], 80 ) . // Repr<70> sentant
initstr ( $inter [ 1 ][ 'adrNum' ], 4 , '0' , ALIGN_RIGHT ) . // Adresse, num<75> ro dans la voie
2012-10-16 07:44:31 +00:00
initstr ( $inter [ 1 ][ 'adrBis' ], 1 ) . // Adresse, Bis/Ter
initstr ( $inter [ 1 ][ 'adrType' ], 4 ) . // Adresse, type de voie
2013-06-19 08:24:49 +00:00
initstr ( $inter [ 1 ][ 'adrLib' ], 32 ) . // Adresse, libell<6C> de la voie
2012-10-16 07:44:31 +00:00
initstr ( $inter [ 1 ][ 'CP' ], 5 , '0' , ALIGN_RIGHT ) . // Adresse, code Postal
initstr ( $inter [ 1 ][ 'Ville' ], 45 ) . // Adresse, commune
2013-06-19 08:24:49 +00:00
initstr ( $inter [ 1 ][ 'Tel' ], 10 , '0' , ALIGN_RIGHT ) . // T<> l<EFBFBD> phone
2012-10-16 07:44:31 +00:00
initstr ( FILLER /*$annonce['JugeCommissaireNom']*/ , 30 ) . // NOM du JugeCommissaire
2013-06-19 08:24:49 +00:00
initstr ( FILLER /*$annonce['JugeCommissairePrenom']*/ , 30 ) . // Pr<50> nom du JugeCommissaire
initstr ( FILLER /*$annonce['JugeCommissaireSupplNom']*/ , 30 ) . // NOM du JugeCommissaire suppl<70> ant
initstr ( FILLER /*$annonce['JugeCommissaireSupplPrenom']*/ , 30 ) . // Pr<50> nom du JugeCommissaire suppl<70> ant
initstr ( WDate :: dateT ( 'Y-m-d' , 'Ymd' , $annonce [ 'dateFinDepotCreances' ]), 8 ) . // Date limite pour le d<> p<EFBFBD> t des cr<63> ances
initstr ( WDate :: dateT ( 'Y-m-d' , 'Ymd' , $annonce [ 'dateFinObservation' ]), 8 ) . // Date de fin de la p<> riode d'observation
2012-10-16 07:44:31 +00:00
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']<>'')
2013-06-19 08:24:49 +00:00
// fwrite($fp, '101'.initsrt($annonce['commentaires'],1500).$eol); // Commentaire textuel si n<> cessaire
$enteteL = initstr ( $annonce [ 'id' ], 10 , '0' , ALIGN_RIGHT ) . // Num<75> ro unique d'identification interne d'une annonce
initstr ( $annonce [ 'siren' ], 9 , '0' , ALIGN_RIGHT ) . // Siren de l'entreprise concern<72> e par l'annonce
2012-10-16 07:44:31 +00:00
initstr ( FILLER , 5 ) . // On garde la place pour le NIC
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'Bodacc_Num' ], 3 , '0' , ALIGN_RIGHT ) . // Num<75> ro de parution du Bodacc dans l'ann<6E> e
2012-10-16 07:44:31 +00:00
initstr ( $codeSourceBodacc , 1 ) . // Code Bodacc (A, B ou C)
initstr ( WDate :: dateT ( 'Y-m-d' , 'Ymd' , $annonce [ 'Bodacc_Date_Parution' ]), 8 ) . // Date de parution du Bodacc
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'Num_Annonce' ], 5 , '0' , ALIGN_RIGHT ) . // Num<75> ro de l'annonce dans le Bodacc
2012-10-16 07:44:31 +00:00
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
2013-06-19 08:24:49 +00:00
initstr ( $annonce [ 'corrNum_Annonce' ], 5 , '0' , ALIGN_RIGHT ) . // Si annonce diff<66> rent de I, num<75> ro de l'annonce corrig<69> e
initstr ( WDate :: dateT ( 'Y-m-d' , 'Ymd' , $annonce [ 'corrBodacc_Date_Parution' ]), 8 ) . // Si diff. I, date du Bodacc de l'annonce corrig<69> e
initstr ( $annonce [ 'corrPage' ], 6 , '0' , ALIGN_RIGHT ) . // Si diff. I, page du Bodacc de l'annonce corrig<69> e
initstr ( $annonce [ 'corrNumParution' ], 4 , '0' , ALIGN_RIGHT ) . // Si diff. I, Num parution dans l'ann<6E> e de annonce corri(ex: 230A, 001B)
2012-10-16 07:44:31 +00:00
initstr ( $refLigneClient , 18 ) . // REF CLI
'' ;
if ( $tabOptOutput [ 101 ] == true && $annonce [ 'commentaires' ] <> '' ) // Commentaires
fwrite ( $fp , genereMultiLigne ( '101' , $enteteL , $annonce [ 'commentaires' ], $optionEOL , $nbLignes ));
2013-06-19 08:24:49 +00:00
if ( $tabOptOutput [ 102 ] == true && $annonce [ 'activite' ] <> '' ) // Activit<69> d<> clar<61> e au Bodacc
2012-10-16 07:44:31 +00:00
fwrite ( $fp , genereMultiLigne ( '102' , $enteteL , $annonce [ 'activite' ], $optionEOL , $nbLignes ));
if ( $annonce [ 'corrTexteRectificatif' ] <> '' ) // Texte rectificatif
fwrite ( $fp , genereMultiLigne ( '103' , $enteteL , $annonce [ 'corrTexteRectificatif' ], $optionEOL , $nbLignes ));
2013-06-19 08:24:49 +00:00
if ( $tabOptOutput [ 104 ] == true ) { // Annonce Bodacc Compl<70> te
2012-10-16 07:44:31 +00:00
if ( $collecte && substr ( $annonce [ 'source' ], 0 , 3 ) <> 'BOD' ) {
$tabCollecte = $iInsee -> getProColPart ( $annonce [ 'siren' ]);
foreach ( $tabCollecte as $annCollecte ) {
$idAnn2 = ( '0.' . $annonce [ 'id' ]) * 1.0 ;
if ( $annCollecte [ 'id' ] == $idAnn2 ) {
$annoncetxt = str_replace ( ' RCS Tribunal inconnu.' , ' RCS.' , $annCollecte [ 'texteAnnonce' ]);
break ;
}
}
} else {
$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 " ;
}
/**
2013-06-19 08:24:49 +00:00
** On g<EFBFBD> n<EFBFBD> re la ligne de fin de fichier
2012-10-16 07:44:31 +00:00
**/
$nbLignes ++ ;
$str = initstr ( '999' , 3 , '0' , ALIGN_RIGHT ) . // Type de ligne
2013-06-19 08:24:49 +00:00
initstr ( date ( 'YmdHis' ), 14 ) . // Date & Heure de fin g<> n<EFBFBD> ration du fichier
initstr ( $clientNumTourFichier , 10 , '0' , ALIGN_RIGHT ) . // Num<75> ro de tour du fichier pour le client
2012-10-16 07:44:31 +00:00
initstr ( $clientIdentifiant , 36 ) . // Identifiant Client
initstr ( $typePrestaton , 32 ) . // Type de prestation
initstr ( $nbLignes , 10 , '0' , ALIGN_RIGHT ) . // Nombre de lignes Total du fichier
'' ;
2013-06-19 08:24:49 +00:00
fwrite ( $fp , initstr ( $str , LONGUEUR_LIGNE_SORTIE )); // Pas de fin de ligne sur la derni<6E> re ligne
2012-10-16 07:44:31 +00:00
fclose ( $fp );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation n<> $numPrestation , Client $nomClient :Fichier client termin<69> . " . EOL ;
2012-10-16 07:44:31 +00:00
2013-06-19 08:24:49 +00:00
/** Mise <EFBFBD> jour des num<EFBFBD> ros de tour et des date de derni<EFBFBD> res ex<EFBFBD> cutions
2012-10-16 07:44:31 +00:00
**/
if ( $incrementationDesTour ) {
$iDbCrm = new WDB ( 'sugarcrm' );
$rep = $iDbCrm -> update ( 'cases_cstm' , array ( 'trtdatederniereexec_c' => date ( 'YmdHis' ), 'trtnumerotour_c' => $clientNumTourFichier ),
" id_c=' " . $tabAdherent [ 'idPrestationBdd' ] . " ' " );
}
2013-06-19 08:24:49 +00:00
/** Conversion du fichier si n<EFBFBD> cessaire en CSV
2012-10-16 07:44:31 +00:00
**/
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 ) {
2013-06-19 08:24:49 +00:00
case 1 : // Ligne ignor<6F> e
// Ecriture de l'ent<6E> te
2012-10-16 07:44:31 +00:00
$siren = 'Siren' ;
$nic = 'Nic' ;
2013-06-19 08:24:49 +00:00
$ref = 'R<> f<EFBFBD> rence' ;
2012-10-16 07:44:31 +00:00
$numPar = 'Parution' ;
$bodacc = 'Bodacc' ;
$datePar = 'Date parution' ;
2013-06-19 08:24:49 +00:00
$numAnn = 'Num<75> ro Annonce' ;
2012-10-16 07:44:31 +00:00
$cor = 'Type Annonce' ;
$libTri = 'Tribunal' ;
2013-06-19 08:24:49 +00:00
$numRC = 'Num<75> ro RCS' ;
2012-10-16 07:44:31 +00:00
$raisonS = 'Raison sociale' ;
$catEven = 'Chapitre' ;
2013-06-19 08:24:49 +00:00
$txtEven = 'Ev<45> nement(s)' ;
$dateEve = 'Date <20> v<EFBFBD> nement' ;
2012-10-16 07:44:31 +00:00
$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 ++ ;
2013-06-19 08:24:49 +00:00
$siren = substr ( $ligne , 13 , 9 ); // Siren de l'entreprise concern<72> e par l'annonce
2012-10-16 07:44:31 +00:00
$nic = trim ( substr ( $ligne , 22 , 5 )); // Nic
2013-06-19 08:24:49 +00:00
$ref = trim ( substr ( $ligne , 71 , 18 )); // R<> f<EFBFBD> rence Client
$numPar = substr ( $ligne , 27 , 3 ); // Num<75> ro de parution du Bodacc dans l'ann<6E> e
2012-10-16 07:44:31 +00:00
$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
2013-06-19 08:24:49 +00:00
$numAnn = substr ( $ligne , 39 , 5 ); // Num<75> 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 <20> une pr<70> c<EFBFBD> dente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
$corNumA = substr ( $ligne , 48 , 5 ); // Num<75> ro de l'annonce corrig<69> e Si annonce diff<66> rent de Insertion
$corDate = substr ( $ligne , 53 , 8 ); // Date du Bodacc de l'annonce corrig<69> e Si annonce diff<66> rent de Insertion. Format AAAAMMJJ
$corPage = substr ( $ligne , 61 , 6 ); // Premi<6D> re page du Bodacc de l'annonce corrig<69> e Si annonce diff<66> rent de Insertion
$corNumP = substr ( $ligne , 67 , 4 ); // Num<75> ro parution du Bodacc dans l'ann<6E> e de l'annonce corrig<69> e Si annonce diff<66> rent de Insertion
2012-10-16 07:44:31 +00:00
$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 = '' ;
2013-06-19 08:24:49 +00:00
if ( $typeAnn <> 'I' ) $cor = " - Annonce n<> $corNumA $corNumP , page $corPage , du " . WDate :: dateT ( 'Ymd' , 'd/M/Y' , $corDate );
2012-10-16 07:44:31 +00:00
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 ;
}
2013-06-19 08:24:49 +00:00
$codeTri = substr ( $ligne , 89 , 6 ); // Code Tribunal Codification interne utilis<69> e par le Bodacc
2012-10-16 07:44:31 +00:00
$libTri = $iBodacc -> getTribunalNom ( $codeTri );
2013-06-19 08:24:49 +00:00
$numRC = trim ( substr ( $ligne , 95 , 9 )); // Num<75> ro de RC (Registre du Commerce) de l'entreprise
2012-10-16 07:44:31 +00:00
$raisonS = trim ( substr ( $ligne , 104 , 150 )); // Raison sociale de l'entreprise
$even = array ();
2013-06-19 08:24:49 +00:00
$even [ 7 ] = substr ( $ligne , 996 , 4 ) * 1 ; // Code Ev<45> nement Bodacc n<> 1 Cf. Table EVEN
$even [ 6 ] = substr ( $ligne , 1000 , 4 ) * 1 ; // Code Ev<45> nement Bodacc n<> 2 Cf. Table EVEN
$even [ 5 ] = substr ( $ligne , 1004 , 4 ) * 1 ; // Code Ev<45> nement Bodacc n<> 3 Cf. Table EVEN
$even [ 4 ] = substr ( $ligne , 1008 , 4 ) * 1 ; // Code Ev<45> nement Bodacc n<> 4 Cf. Table EVEN
$even [ 3 ] = substr ( $ligne , 1012 , 4 ) * 1 ; // Code Ev<45> nement Bodacc n<> 5 Cf. Table EVEN
$even [ 2 ] = substr ( $ligne , 1016 , 4 ) * 1 ; // Code Ev<45> nement Bodacc n<> 6 Cf. Table EVEN
$even [ 1 ] = substr ( $ligne , 1020 , 4 ) * 1 ; // Code Ev<45> nement Bodacc n<> 7 Cf. Table EVEN
$even [ 0 ] = substr ( $ligne , 1024 , 4 ) * 1 ; // Code Ev<45> nement Bodacc n<> 8 Cf. Table EVEN
2012-10-16 07:44:31 +00:00
$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 ;
2013-06-19 08:24:49 +00:00
case 999 : // Ligne ignor<6F> e
2012-10-16 07:44:31 +00:00
$ligneOut = " $siren ; $nic ; $ref ; $numPar ; $bodacc ; $datePar ; $numAnn ; $cor ; $libTri ; $numRC ; $raisonS ; $catEven ; $txtEven ; $dateEve ; $txtAnn " ;
$ligne999 ++ ;
$ecrireLignePre = true ;
break ;
2013-06-19 08:24:49 +00:00
default : // Ligne non g<> r<EFBFBD> e
2012-10-16 07:44:31 +00:00
break ;
}
if ( $ecrireLignePre ) fwrite ( $fp , $ligneOut . EOL );
}
fclose ( $fp );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Conversion du fichier $fichier_csv termin<69> e ! " . EOL ;
2012-10-16 07:44:31 +00:00
}
2013-06-19 08:24:49 +00:00
/*Gzip ou zip zt envoi par mail ou d<> pot sur le site FTP*/
2012-10-16 07:44:31 +00:00
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' );
2013-06-19 08:24:49 +00:00
// Ne sait pas si le niveau de compression 1 <20> 9 est impl<70> ment<6E> pour cette fonction
2012-10-16 07:44:31 +00:00
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 ))
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : D<> placement du fichier $ficProduction impossible ! " . EOL ;
2012-10-16 07:44:31 +00:00
else
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier $ficProduction a <20> t<EFBFBD> cr<63> <72> ... " . EOL ;
2012-10-16 07:44:31 +00:00
if ( $tabAdherent [ 'formatEnvois' ] == 'csv' ) {
if ( ! copy ( REP_TEMP . $ficProduction_csv , $repProduction . $ficProduction_csv ))
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : D<> placement du fichier $ficProduction_csv impossible ! " . EOL ;
2012-10-16 07:44:31 +00:00
else
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier $ficProduction_csv a <20> t<EFBFBD> cr<63> <72> ... " . EOL ;
2012-10-16 07:44:31 +00:00
}
break ;
}
/** Sauvegarde des fichiers dans clients **/
$repBakClient = '/home/data/clients/' . strtolower ( $tabAdherent [ 'nomClient' ]);
if ( ! file_exists ( $repBakClient )) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - ATTENTION : Les dossiers BACKUP du client ne sont pas correctement cr<63> <72> s ! " . EOL ;
2012-10-16 07:44:31 +00:00
if ( ! file_exists ( $repBakClient ) && mkdir ( $repBakClient ))
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le dossier Backup du client a <20> t<EFBFBD> cr<63> <72> ( $repBakClient ) " . EOL ;
2012-10-16 07:44:31 +00:00
// if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv'))
2013-06-19 08:24:49 +00:00
// echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a <20> t<EFBFBD> cr<63> <72> ($repFtpClient/recv)".EOL;
2012-10-16 07:44:31 +00:00
}
if ( ! copy ( $repProduction . $ficProduction , $repBakClient . '/' . $ficProduction ))
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : Copy du fichier $ficProduction dans Backup impossible ! " . EOL ;
else
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier $ficProduction a <20> t<EFBFBD> historis<69> ... " . EOL ;
2012-10-16 07:44:31 +00:00
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
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier $ficProduction_csv a <20> t<EFBFBD> historis<69> ... " . EOL ;
2012-10-16 07:44:31 +00:00
}
2013-06-19 08:24:49 +00:00
/** Si FTP, d<> placement dans les dossiers ad<61> quats **/
2012-10-16 07:44:31 +00:00
if ( $tabAdherent [ 'supportPrestation' ] == 'ftp' || $tabAdherent [ 'supportPrestation' ] == 'web' ) { //$repProduction.$ficProduction
$repFtpClient = '/home/data/ftp/' . strtolower ( $tabAdherent [ 'nomClient' ]);
if ( ! file_exists ( $repFtpClient ) || ! file_exists ( $repFtpClient . '/recv' )) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - ATTENTION : Les dossiers FTP du client ne sont pas correctement cr<63> <72> s ! " . EOL ;
2012-10-16 07:44:31 +00:00
if ( ! file_exists ( $repFtpClient ) && mkdir ( $repFtpClient ))
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le dossier FTP du client a <20> t<EFBFBD> cr<63> <72> ( $repFtpClient ) " . EOL ;
2012-10-16 07:44:31 +00:00
if ( ! file_exists ( $repFtpClient . '/recv' ) && mkdir ( $repFtpClient . '/recv' ))
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le dossier FTP/RECV du client a <20> t<EFBFBD> cr<63> <72> ( $repFtpClient /recv) " . EOL ;
2012-10-16 07:44:31 +00:00
}
if ( ! move ( $repProduction . $ficProduction , $repFtpClient . '/recv/' . $ficProduction ))
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : D<> placement du fichier $ficProduction dans FTP/RECV impossible ! " . EOL ;
2012-10-16 07:44:31 +00:00
else
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier $ficProduction a <20> t<EFBFBD> d<> plac<61> dans FTP/RECV... " . EOL ;
2012-10-16 07:44:31 +00:00
if ( $tabAdherent [ 'formatEnvois' ] == 'csv' ) {
if ( ! move ( $repProduction . $ficProduction_csv , $repFtpClient . '/recv/' . $ficProduction_csv ))
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : D<> placement du fichier $ficProduction_csv dans FTP/RECV impossible ! " . EOL ;
2012-10-16 07:44:31 +00:00
else
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier $ficProduction_csv a <20> t<EFBFBD> d<> plac<61> dans FTP/RECV... " . EOL ;
2012-10-16 07:44:31 +00:00
}
}
}
echo date ( 'Y/m/d - H:i:s' ) . " - Fin du traitement diffusion BODACC. \n " ;
die ();
?>