batch/1.1/old/diffusionBodaccPrev2011.php

1428 lines
88 KiB
PHP
Raw Normal View History

#!/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
*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'conversion/bilAltares.php');
include_once(FWK_PATH.'mail/sendMail.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.
Options :
2013-06-19 08:24:49 +00:00
-d Clients en Diffusion Bodacc (par d<EFBFBD>faut)
-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
";
$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();
global $iInsee, $a;
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 '101': // ?
2013-06-19 08:24:49 +00:00
case '102': // Activit<69> d<>clar<61>e au Bodacc
case '103': // Texte rectificatif
2013-06-19 08:24:49 +00:00
case '104': // Annonce Bodacc Compl<70>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:
2013-06-19 08:24:49 +00:00
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;
}
2013-06-19 08:24:49 +00:00
echo date ('Y/m/d - H:i:s')." - D<>but du traitement diffusion BODACC.\n";
2013-06-19 08:24:49 +00:00
/** On r<>cup<75>re la liste des Adh<64>rents **/
//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 $typePrestaton.".EOL;
$strMessage=date ('Y/m/d - H:i:s')." - Il y a $nbClients client(s) <20> servir en $typePrestaton.".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';
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 **/
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
{
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;
continue;
}
2013-06-19 08:24:49 +00:00
if ($dateFinPrestation && DATE>$dateFinPrestation) // La date de fin de la prestation est r<>volue
{
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;
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;
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;
$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
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;
/**
2013-06-19 08:24:49 +00:00
** On g<EFBFBD>n<EFBFBD>re la ligne d'ent<EFBFBD>te
**/
$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 !');
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
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
**/
$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
$strRubrique.="'comptes',";
$tabRubCollecte[]=" typeEven LIKE '3%' ";
}
2013-06-19 08:24:49 +00:00
if (strpos($tabAdherent['optionPrestation'], 'creations')) { // Export des cr<63>ations
$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
$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
$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
$tabOptOutput[104]=true; else $tabOptOutput[104]=false;
if (strpos($tabAdherent['optionPrestation'], '105')) // Structure Dirigeants BODACC
$tabOptOutput[105]=true; else $tabOptOutput[105]=false;
2013-06-19 08:24:49 +00:00
if (strpos($tabAdherent['optionPrestation'], '200')) // Structure Identit<69> Insee S&D
$tabOptOutput[200]=true; else $tabOptOutput[200]=false;
if (strpos($tabAdherent['optionPrestation'], '400')) // Structure Bilans
$tabOptOutput[400]=true; else $tabOptOutput[400]=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));
}
$tabCJ=array();
$posCJ=stripos($tabAdherent['optionPrestation'], 'CJ=');
if ($posCJ!==false) {
if (preg_match('/CJ=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
$tabCJ=preg_split('(;|,)', $matches[1]);
//die(print_r($tabCJ));
}
$tabCodeCom=array();
$posNaf=stripos($tabAdherent['optionPrestation'], 'CodeCom=');
if ($posNaf!==false) {
if (preg_match('/CodeCom=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
$tabCodeCom=preg_split('(;|,)', $matches[1]);
/////die(print_r($tabCodeCom));
}
$tabEve=array();
$posEve=stripos($tabAdherent['optionPrestation'], 'codeEven=');
if ($posEve!==false) {
if (preg_match('/codeEven=(.*)(?:$|\n|\r)/i',$tabAdherent['optionPrestation'],$matches))
$tabEve=preg_split('(;|,)', $matches[1]);
//die(print_r($tabCJ));
}
$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, d.nic, d.nicValide, 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, 0 AS nic, 0 AS nicValide, 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
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
if ($clientIdentifiant<>'SURBODPRDFTSMEDERIC') {
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) ) ";
}
}
2013-06-19 08:24:49 +00:00
// ... 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) ";
$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) ) ";
}
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'))' ";
}
} else {
$where.='';
$whereCol.='';
}
/*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>'2010-05-11' "; /** @todo A supprimer apr<70>s le 19 juillet 2010 ... **/
$whereCol.=" AND a.dateSource>'2010-05-12 02:00:00' AND a.dateSuppr=0 "; // Idem ... (Prev: apr<70>s la r<>tro du 22 mai 2008)
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;
$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 || count($tabCJ)>0 || count($tabCodeCom)>0) {
$strNaf=$strCJ='';
$fields="'BOD' AS src, d.id";
$fieldsCol="'COL' AS src, a.id";
$tables='bodacc_detail d, etablissements e';
$tablesCol='annonces a, etablissements e';
$where.=" AND d.siren=e.siren AND d.siren>1000 AND (d.nic=e.nic OR e.siege=1) AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 ";
$whereCol.=" AND a.siren=e.siren AND a.siren>1000 AND DATEDIFF(NOW(), dateJugement)<=60 ";
}
if (count($tabNaf)>0) {
$strNaf="'".implode("','",$tabNaf)."'";
$where.=" AND (e.ape_etab IN ($strNaf) OR e.ape_entrep IN ($strNaf)) ";
$whereCol.=" AND (e.ape_etab IN ($strNaf) OR e.ape_entrep IN ($strNaf)) ";
}
if (count($tabCodeCom)>0) {
$where.=" AND (";
foreach($tabCodeCom as $iCom=>$codeCom) {
$dep=substr($codeCom,0,2);
if ($dep<>'2A' && $dep<>'2B') {
$dep=$dep*1;
if ($dep<10) $strDep="'$dep','0$dep','00$dep'";
elseif ($dep>96)$strDep="'$dep'";
else $strDep="'$dep','0$dep'";
} else $strDep="'$dep'";
$com=substr($codeCom,2,3)*1;
if ($iCom>0) { $where.=" OR "; $whereCol.=" OR "; }
$where.=" (e.adr_dep IN ($strDep) AND e.adr_com=$com) ";
$whereCol.=" (e.adr_dep IN ($strDep) AND e.adr_com=$com) ";
}
$where.=") ";
$whereCol.=") ";
}
if (count($tabCJ)>0) {
$strCJ=implode(',',$tabCJ);
$where.=" AND e.cj IN ($strCJ) ";
$whereCol.=" AND e.cj IN ($strCJ) ";
// $where="d.id>=10454829 AND d.Rubrique IN('procol') AND d.siren=e.siren AND d.siren>1000 AND e.cj IN (5191,5192,5193,5194,5195,5196,5202,5203,5306,5307,5308,5309,5385,5410,5415,5422,5426,5431,5432,5442,5443,5451,5453,5454,5455,5458,5459,5460,5485,5498,5499,5505,5510,5515,5520,5522,5525,5530,5531,5532,5542,5543,5546,5547,5548,5551,5552,5553,5554,5555,5558,5559,5560,5585,5599,5605,5610,5615,5620,5630,5632,5642,5646,5647,5651,5652,5653,5655,5658,5659,5660,5685,5699,5710,5720,5785,5800,6100,6200,6210,6220,6316,6317,6318,6411,6521,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6551,6554,6558,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6571,6572,6573,6574,6575,6576,6577,6578,6585,6588,6589,6595,6596,6597,6598,6599,6901) GROUP BY d.id;";
}
if (count($tabEve)>0) {
$tabRubColl=array();
/*print_r($tabEve);
die();*/
foreach ($tabEve as $tmpEve) {
$tabRubColl[] =' typeEven LIKE \'%'.$tmpEve.'%\' ';
$tabRubColl2[]=' strEven LIKE \'%'.$tmpEve.'%\' ';
}
$where.=' AND ('.implode(' OR ', $tabRubColl).') ';
$whereCol.=' AND (typeEven IN ('.implode(',', $tabEve).') OR '.implode(' OR ', $tabRubColl2).') ';
}
if (count($tabNaf)>0 || count($tabCJ)>0) {
$where.=" GROUP BY d.id";
$whereCol.=" GROUP BY a.id";
/*$where="d.id>=10454829 AND d.Rubrique IN('procol') AND d.siren=e.siren AND d.siren>1000 AND e.cj IN (5191,5192,5193,5194,5195,5196,5202,5203,5306,5307,5308,5309,5385,5410,5415,5422,5426,5431,5432,5442,5443,5451,5453,5454,5455,5458,5459,5460,5485,5498,5499,5505,5510,5515,5520,5522,5525,5530,5531,5532,5542,5543,5546,5547,5548,5551,5552,5553,5554,5555,5558,5559,5560,5585,5599,5605,5610,5615,5620,5630,5632,5642,5646,5647,5651,5652,5653,5655,5658,5659,5660,5685,5699,5710,5720,5785,5800,6100,6200,6210,6220,6316,6317,6318,6411,6521,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6551,6554,6558,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6571,6572,6573,6574,6575,6576,6577,6578,6585,6588,6589,6595,6596,6597,6598,6599,6901)
AND ( typeEven LIKE '%1010%' OR typeEven LIKE '%1050%' OR typeEven LIKE '%1055%' OR typeEven LIKE '%1100%' OR typeEven LIKE '%1101%' OR typeEven LIKE '%1200%' OR typeEven LIKE '%1201%' OR typeEven LIKE '%1207%' OR typeEven LIKE '%1209%' OR typeEven LIKE '%1211%' OR typeEven LIKE '%1212%' OR typeEven LIKE '%1310%' OR typeEven LIKE '%1346%' OR typeEven LIKE '%1418%' OR typeEven LIKE '%1419%' ) GROUP BY d.id;";
//die();
*/
}
}
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;
$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>1000 AND s.idClient='$clientIdentifiant' AND s.dateSuppr='0000-00-00' ";
$whereCol.=" AND a.siren=s.siren AND a.siren>1000 AND s.idClient='$clientIdentifiant' AND s.dateSuppr='0000-00-00' ";
if ($clientIdentifiant<>'SURBODPRDFTSMEDERIC') {
if (!$retroActivite) {
$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 ";
$whereCol.=" AND DATEDIFF(NOW(), dateJugement)<=60 ";
}
} else {
$where.=" AND d.dateInsert>s.dateDerEnvoi ";
}
/*
$where="d.siren=s.siren AND s.siren>1000 AND s.idClient='SURBODPRDFTSMEDERIC' AND s.dateSuppr='0000-00-00' AND (
(d.id=13278187 AND d.siren=513077818) OR
(d.id=13834100 AND d.siren=458202033) OR
(d.id=13893752 AND d.siren=503498636) OR
(d.id=13901548 AND d.siren=523090157) )";
/**/
}
2013-06-19 08:24:49 +00:00
else die('Type de prestation non g<>r<EFBFBD>e : '.$typePrestaton.EOL);
//$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; // NE PAS ENVOYER D'ANNONCES DONT LES DELAIS DE FORCLUSION SONT PASSEES
/* if ($codeAdherent=='DIFBODTSTFTSA6CMO') {
$where="SIREN IN(038728333,
038733259,
998823504
)";
}*/
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)';
//die(mysql_error().EOL);
} 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
$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;
//if ($collecte) die();
if (count($tabNaf)>0 || count($tabCJ)>0 || count($tabCodeCom)>0) {
$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";
$tables='bodacc_detail d';
$tablesCol='annonces a';
$where='d.id IN (0';
$whereCol='a.id IN (0';
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
if ($annonce['src']=='BOD') $where.=','.$annonce['id'];
else $whereCol.=','.$annonce['id'];
}
$where.=')';
$whereCol.=')';
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)';
//die(mysql_error().EOL);
} 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
$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 liens entrep/annonces <20> traiter...".EOL;
}
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;
//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
**/
$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 **/
$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 ?
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
$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
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
$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)) {
$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=";
// 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'];
//ICI//
$iDb2->update('surveillances_listes', array('dateDerEnvoi'=>DATETIME),"idClient='$clientIdentifiant' AND siren='".$annonce['siren']."' AND ref='$refLigneClient'");
$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;
}
}
$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
case 'T': // T=Tribunal
$codeSourceBodacc=substr($annonce['source'],0,1); break;
default: $codeSourceBodacc='J'; break;
}
}
if ($tabOptOutput[200]==true) {
$str=genereLigne200($annonce['siren'], $annonce['nic']);
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes++;
}
if ($tabOptOutput[400]==true) {
$str=genereLignes400($annonce['siren'], $nbLignes, $optionEOL);
fwrite($fp, $str);
}
$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
initstr($annonce['nic'], 5, '0', ALIGN_RIGHT) . // NIC de l'<27>tablissement
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Num<75>ro de parution du Bodacc dans l'ann<6E>e
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
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
// (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
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
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
//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
initstr(round($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
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
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>
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
initstr(round($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
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
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
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
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
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
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
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
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
initstr($annonce['nic'], 5, '0', ALIGN_RIGHT) . // NIC de l'<27>tablissement
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Num<75>ro de parution du Bodacc dans l'ann<6E>e
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
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)
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
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
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
**/
$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
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
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;
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
**/
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
**/
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
$siren ='Siren';
$nic ='Nic';
2013-06-19 08:24:49 +00:00
$ref ='R<>f<EFBFBD>rence';
$numPar ='Parution';
$bodacc ='Bodacc';
$datePar='Date parution';
2013-06-19 08:24:49 +00:00
$numAnn ='Num<75>ro Annonce';
$cor ='Type Annonce';
$libTri ='Tribunal';
2013-06-19 08:24:49 +00:00
$numRC ='Num<75>ro RCS';
$raisonS='Raison sociale';
$catEven='Chapitre';
2013-06-19 08:24:49 +00:00
$txtEven='Ev<45>nement(s)';
$dateEve='Date <20>v<EFBFBD>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++;
2013-06-19 08:24:49 +00:00
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concern<72>e par l'annonce
$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
$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
$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);
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
$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
$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
$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
$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
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;
}
2013-06-19 08:24:49 +00:00
/** Conversion du fichier si n<EFBFBD>cessaire en SO2000
**/
elseif ($tabAdherent['formatEnvois']=='specifique') {
$fichierIn=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt';
if (preg_match('/APICIL/',$fichierIn)) { $numeroAbonneBil='019400018'; $optionsIdBil='I'; }
// elseif (preg_match('/METRO/',$fichierIn)) { $numeroAbonneBil='013990040'; $optionsIdBil='IN'; }
$ret=conversionSd2So2000($repProduction.$fichierIn, $numeroAbonneBil, '', $optionsIdBil);
if ($ret===true)
2013-06-19 08:24:49 +00:00
echo date('Y/m/d - H:i:s') . " - Conversion sp<73>cifique BIL/SO2000 (abonn<6E> $numeroAbonneBil) termin<69>e !".EOL;
else
2013-06-19 08:24:49 +00:00
echo date('Y/m/d - H:i:s') . " - ERREUR lors de la conversion du fichier S&D $fichierIn en BIL/SO2000 (abonn<6E> $numeroAbonneBil) : $ret !".EOL;
}
2013-06-19 08:24:49 +00:00
/*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');
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
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;
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;
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;
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;
}
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;
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;
// 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;
}
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;
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;
}
2013-06-19 08:24:49 +00:00
/** Si FTP, d<>placement dans les dossiers ad<61>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')) {
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;
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;
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;
}
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;
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;
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;
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;
}
}
}
$strMessage.=date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces par fichier '$typePrestaton'", $strMessage);
echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
die();
function genereLigne200($siren, $nic) {
global $iInsee, $a;
$a=$iInsee->getIdentiteEntreprise($siren,$nic);
$b=$iInsee->getInfosNotice($siren,$nic);
$c=$iInsee->getAdresse($siren,$nic);
2013-06-19 08:24:49 +00:00
$str= initstr(200, 3) . // Obligatoire CODE_ENTETE Ligne de description structur<75>e de l'identit<69>
initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Num<75>ro unique d'identification interne d'un <20>tablissement S&D
initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise
2013-06-19 08:24:49 +00:00
initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'<27>tablissement
initstr($a['Source'], 3 , '0', ALIGN_RIGHT) . // Obligatoire SOURCE Source de la fiche d'identit<69>
initstr($iInsee->valideSiren($siren,$nic), 1 , '0', ALIGN_RIGHT) . // Obligatoire SIRETVALIDE Siren/siret valide
2013-06-19 08:24:49 +00:00
initstr($a['numRC'], 10 ) . // Facultatif NUMRCS Num<75>ro de Registre du Commerce et des Soci<63>t<EFBFBD>s
initstr($a['Tribunal'], 6 ) . // Facultatif TRIBUNAL Identifiant du Tribunal
2013-06-19 08:24:49 +00:00
initstr(str_replace('-','',$a['dateMajIdentite']), 8 , '0', ALIGN_RIGHT) . // Obligatoire DATEMAJ Date de la derni<6E>re mise <20> jour dans la base S&D
initstr($a['Actif'], 1 , '0', ALIGN_RIGHT) . // Obligatoire ACTIF <09>tablissement juridiquement actif
initstr($a['ActifEco'], 1 , '0', ALIGN_RIGHT) . // Obligatoire ACTIFECO <09>tablissement <20>conomiquement actif
initstr($a['SituationJuridique'], 2 ) . // Obligatoire SITJUR Situation Juridique de l'entreprise
2013-06-19 08:24:49 +00:00
initstr('', 3 ) . // Facultatif EVE Dernier <20>v<EFBFBD>nement Insee recens<6E>
initstr(str_replace('-','',$a['DateMajINSEE']), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEVE Date du dernier <20>v<EFBFBD>nement Insee recens<6E>
initstr('', 2 ) . // Facultatif TYPETAB Type d'<27>tablissement concern<72> par l'<27>v<EFBFBD>nement
initstr($a['Siege'], 1 , '0', ALIGN_RIGHT) . // Obligatoire SIEGE <09>tablissement si<73>ge, secondaire ou principal
initstr($a['Nom'], 160 ) . // Obligatoire NOM Raison Sociale
initstr($a['NomCommercial'], 160 ) . // Facultatif NOMCOM Nom commercial
2013-06-19 08:24:49 +00:00
initstr($a['Enseigne'], 80 ) . // Facultatif ENSEIGNE Enseigne de l'<27>tablissement
initstr($a['Sigle'], 40 ) . // Facultatif SIGLE sigle de l'entreprise
2013-06-19 08:24:49 +00:00
initstr($a['AdresseNum'], 4 , '0', ALIGN_RIGHT) . // Facultatif ADR_NUMVOIE Num<75>ro dans la voie
initstr($a['AdresseBtq'], 1 ) . // Facultatif ADR_BTQ Indicateur de r<>p<EFBFBD>tition (Bis, Ter, etc...)
initstr($a['AdresseVoie'], 4 ) . // Facultatif ADR_TYPVOIE Type de voie
2013-06-19 08:24:49 +00:00
initstr($a['AdresseRue'], 32 ) . // Obligatoire ADR_LIBVOIE Libell<6C> de la voie
initstr($a['Ville'], 32 ) . // Obligatoire ADR_LIBCOM Commune
initstr($a['CP'], 5 , '0', ALIGN_RIGHT) . // Obligatoire ADR_CP Code postal
2013-06-19 08:24:49 +00:00
initstr($a['Adresse2'], 38 ) . // Facultatif ADR_COMP Compl<70>ment d'adresse
initstr('', 38 ) . // Facultatif ADR_DISTSP Distribution sp<73>ciale
initstr($a['Pays'], 38 ) . // Facultatif PAYS Pays
initstr($a['PaysIso2'], 2 ) . // Facultatif PAYSISO2 Code Pays au format ISO2
2013-06-19 08:24:49 +00:00
initstr($a['Dept'], 2 ) . // Obligatoire ADR_DEP D<>partement de l'<27>tablissement
initstr($a['codeCommune'], 3 , '0', ALIGN_RIGHT) . // Obligatoire ADR_COM Code commune de l'<27>tablissement
initstr(str_replace(' ','',$a['Rivoli']), 5 ) . // Facultatif CODEVOIE Code voie de l'<27>tablissement
initstr($a['codIris'], 4 ) . // Facultatif CODEIRIS Code Iris de l'<27>tablissement
initstr('', 5 ) . // Facultatif CODEILOT Code Ilot de l'<27>tablissement
initstr($a['AdresseDom'], 1 , '0', ALIGN_RIGHT) . // Facultatif ADRESSEDOM Indicateur d'adresse de domiciliation
2013-06-19 08:24:49 +00:00
initstr($a['Tel'], 15 ) . // Facultatif TEL Num<75>ro de t<>l<EFBFBD>phone
initstr($a['Fax'], 15 ) . // Facultatif FAX Num<75>ro de t<>l<EFBFBD>copie
initstr($a['Web'], 80 ) . // Facultatif WEB Site Web
2013-06-19 08:24:49 +00:00
initstr($a['Mail'], 80 ) . // Facultatif MAIL Adresse Email de contact g<>n<EFBFBD>rique
initstr($a['Auxiliaire'], 1 , '0', ALIGN_RIGHT) . // Facultatif AUXILT Auxiliarit<69> de l'activit<69> de l'<27>tablissement
initstr($a['Saisonnalite'], 1 , '0', ALIGN_RIGHT) . // Facultatif SAISONAT Saisonnalit<69> de l'<27>tablissement
initstr($a['NatureActivite'], 2 , '0', ALIGN_RIGHT) . // Facultatif ACTIVNAT Nature de l'activit<69> de l'<27>tablissement
initstr($a['OrigineCreation'], 2 ) . // Facultatif ORIGINE Origine de la cr<63>ation de l'<27>tablissement
initstr($a['TypeExploitation'], 2 , '0', ALIGN_RIGHT) . // Facultatif TYPEXPLOIT Type d'exploitation
2013-06-19 08:24:49 +00:00
initstr($a['LIEUACT'], 2 , '0', ALIGN_RIGHT) . // Facultatif LIEUACT Lieu de l'activit<69> de l'<27>tablissement
initstr($a['ACTISURF'], 2 , '0', ALIGN_RIGHT) . // Facultatif ACTISURF Type de magasin
2013-06-19 08:24:49 +00:00
initstr($a['PRODPART'], 1 , '0', ALIGN_RIGHT) . // Facultatif PRODPART Participation particuli<6C>re <20> la production de l'<27>tablissement
initstr($b['insARRONET'], 2 , '0', ALIGN_RIGHT) . // Facultatif ARRONET Arrondissement de l'<27>tablissement
initstr($b['insCTONET'], 3 , '0', ALIGN_RIGHT) . // Facultatif CTONET Canton
2013-06-19 08:24:49 +00:00
initstr($b['insTCD'], 2 , '0', ALIGN_RIGHT) . // Facultatif TCD Tranche de commune d<>taill<6C>e
initstr($b['insZEMET'], 2 , '0', ALIGN_RIGHT) . // Facultatif ZEMET Zone d'emploi
2013-06-19 08:24:49 +00:00
initstr($b['insDU'], 2 ) . // Facultatif DU D<>partement de l'unit<69> urbaine de localisation
initstr($b['insTU'], 1 ) . // Facultatif TU Taille de l'unit<69> urbaine
initstr($b['insUU'], 2 ) . // Facultatif UU Num<75>ro de l'unti<74> urbaine
initstr(str_replace('-','',$a['DateCreaEt']), 8 , '0', ALIGN_RIGHT) . // Facultatif DCRET Date de cr<63>ation de l'<27>tablissement
initstr($a['NafEtab'], 5 ) . // Obligatoire APE_ETAB Code activit<69> dans la NAF r<>v2 de l'<27>tablissement
initstr($a['NaceEtab'], 5 ) . // Facultatif NACE_ETAB Code activit<69> NACE de l'<27>tablissement
2013-06-19 08:24:49 +00:00
initstr(0, 4 , '0', ALIGN_RIGHT) . // Facultatif DAPET Ann<6E>e de validit<69> de l'activit<69> principale de l'<27>tablissement
2013-06-19 08:24:49 +00:00
initstr($a['EffectifEtab'], 7 , '0', ALIGN_RIGHT) . // Facultatif EFF_ET Effectif de l'<27>tablissement
initstr($a['EffEtTr'], 2 ) . // Facultatif TEFF_ET Tranche d'effectif de l'<27>tablissement
initstr($a['AnneeEffEt'], 4 , '0', ALIGN_RIGHT) . // Facultatif DEFET Ann<6E>e de mise <20> jour de l'effectif <20>tablissement
2013-06-19 08:24:49 +00:00
initstr('', 1 ) . // Facultatif MODET Modalit<69> de l'activit<69> pricipale de l'<27>tablissement
initstr($a['EXPLET'], 1 ) . // Facultatif EXPLET Etablissement exploitant tout ou partie des moyens de production
2013-06-19 08:24:49 +00:00
initstr($b['insRPET'], 2 , '0', ALIGN_RIGHT) . // Facultatif RPET R<>gion de localisation de l'<27>tablissement
2013-06-19 08:24:49 +00:00
initstr(str_replace('-','',0), 8 , '0', ALIGN_RIGHT) . // Facultatif DREACTET Date de r<>activation de l'<27>tablissement
initstr(str_replace('-','',0), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEFERET Date de fermeture de l'<27>tablissement
2013-06-19 08:24:49 +00:00
initstr($b['insEAEANT'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANT Ann<6E>e de validit<69> des rubriques de niveau Etab provenant des EAE*
initstr($b['insEAEAPET'], 5 ) . // Facultatif EAEAPET Activit<69> principale de l'<27>tablissement issue des EAE
initstr($b['insEAESEC1T'], 5 ) . // Facultatif EAESEC1T Activit<69> secondaire de l'<27>tablissement issue des EAE
initstr($b['insEAESEC2T'], 5 ) . // Facultatif EAESEC2T Autre activit<69> secondaire de l'<27>tablissement issue des EAE
initstr(str_replace('-','',$a['DateCreaEn']), 8 , '0', ALIGN_RIGHT) . // Facultatif DCREN Date de cr<63>ation de l'entreprise
initstr($a['NafEnt'], 5 ) . // Obligatoire APE_ENT Code activit<69> dans la NAF r<>v2 de l'entreprise
initstr($a['NaceEnt'], 5 ) . // Facultatif NACE_ENT Code activit<69> NACE de l'entreprise
2013-06-19 08:24:49 +00:00
initstr(0, 4 , '0', ALIGN_RIGHT) . // Facultatif DAPEN Ann<6E>e de validit<69> de l'activit<69> principale de l'entreprise
initstr($a['Effectif'], 7 , '0', ALIGN_RIGHT) . // Facultatif EFF_ENT Effectif de l'entreprise
initstr($a['EffEnTr'], 2 ) . // Facultatif TEFF_ENT Tranche d'effectif de l'entreprise
2013-06-19 08:24:49 +00:00
initstr($a['AnneeEffEn'], 4 , '0', ALIGN_RIGHT) . // Facultatif DEFEN Ann<6E>e de mise <20> jour de l'effectif entreprise
initstr($a['MODEN'], 1 ) . // Facultatif MODEN Modalit<69> de l'activit<69> pricipale de l'entreprise
initstr($a['EXPLEN'], 1 ) . // Facultatif EXPLEN Entreprise exploitant tout ou partie des moyens de production
2013-06-19 08:24:49 +00:00
initstr($b['insRPEN'], 2 , '0', ALIGN_RIGHT) . // Facultatif RPEN R<>gion de localisation du si<73>ge de l'entreprise
2013-06-19 08:24:49 +00:00
initstr(str_replace('-','',0), 8 , '0', ALIGN_RIGHT) . // Facultatif DREACTEN Date de r<>activation de l'entreprise
initstr(str_replace('-','',0), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEFEREN Date de fermeture de l'entreprise
initstr(str_replace('-','',$a['dateImmat']), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEIMMAT Date d'immatriculation de l'entreprise au RCS
initstr(str_replace('-','',$a['dateRad']), 8 , '0', ALIGN_RIGHT) . // Facultatif DATERAD Date de radiation de l'entreprise du RCS
initstr($a['Capital'], 15 , '0', ALIGN_RIGHT) . // Facultatif CAPITAL Montant du capital de l'entreprise
initstr($a['CapitalType'], 1 ) . // Facultatif CAPITALTYPE Type de capital
initstr($a['CapitalDev'], 3 ) . // Facultatif CAPITALDEV Devise du capital
2013-06-19 08:24:49 +00:00
initstr($a['FJ'], 4 , '0', ALIGN_RIGHT) . // Obligatoire CJ Cat<61>gorie Juridique de l'entreprise
initstr($a['Civilite'], 1 , '0', ALIGN_RIGHT) . // Facultatif CIVILITE Civilit<69> de l'entreprise si Personne Physique
initstr($a['NbEtab'], 4 , '0', ALIGN_RIGHT) . // Facultatif NBETAB Nombre d'<27>tablissements actifs de l'entreprise
initstr($a['TrancheCA'], 1 , '0', ALIGN_RIGHT) . // Facultatif TCA Tranche de chiffre d'affaire
2013-06-19 08:24:49 +00:00
initstr($a['TrancheCAexp'], 1 , '0', ALIGN_RIGHT) . // Facultatif TCAEXP Tranche de chiffre d'affaire <20> l'export
initstr($a['APRM'], 6 ) . // Facultatif APRM Activit<69> principale au registre des m<>tiers
initstr($a['MONOREG'], 1 , '0', ALIGN_RIGHT) . // Facultatif MONOREG Mono-r<>gionalit<69> de l'entreprise
initstr($a['REGIMP'], 2 , '0', ALIGN_RIGHT) . // Facultatif REGIMP Principale r<>gion d'implantation de l'entreprise
initstr($a['MONOACT'], 1 , '0', ALIGN_RIGHT) . // Facultatif MONOACT Mono-activit<69> de l'entreprise
initstr(substr($a['SiretSiege'],-5), 5 , '0', ALIGN_RIGHT) . // Facultatif NICSIEGE Nic de l'<27>tablissement si<73>ge
initstr($a['RECME'], 1 , '0', ALIGN_RIGHT) . // Facultatif RECME R<>pertoire des Entreprises Contr<74>l<EFBFBD>es Majoritairement par l'<27>tat
2013-06-19 08:24:49 +00:00
initstr(0, 14 , '0', ALIGN_RIGHT) . // Facultatif SIRETLIE Siret li<6C><69>: pr<70>d<EFBFBD>cesseur, successeur, doublon, autre
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif SIRETLIETYPE Type de sitet li<6C>
initstr($a['AutreSiret']['pre']['nic'], 5 , '0', ALIGN_RIGHT) . // Facultatif NICPREC Nic de l'<27>tablissement pr<70>d<EFBFBD>cesseur (dans le cadre d'un transfert)
initstr($a['AutreSiret']['suc']['nic'], 5 , '0', ALIGN_RIGHT) . // Facultatif NICSUIV Nic de l'<27>tablissement successeur (dans le cadre d'un transfert)
initstr('', 2 ) . // Facultatif insDESTINAT Destination Insee
2013-06-19 08:24:49 +00:00
initstr($b['insDEPCOMEN'], 5 , '0', ALIGN_RIGHT) . // Facultatif insDEPCOMEN Code commune Insee du si<73>ge de l'entreprise
/*initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMNICSIEGE Indicateur de MAJ du NIC SIEGE
initstr(0 1 , '0', ALIGN_RIGHT) . // Facultatif insMNOMEN Indicateur de MAJ de la Raison Sociale
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMCJ Indicateur de MAJ de la Forme Juridique
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMAPEN Indicateur de MAJ du NAF entreprise
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMENSEIGNE Indicateur de MAJ de l'ENSEIGNE
2013-06-19 08:24:49 +00:00
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMAPET Indicateur de MAJ du NAF <20>tablissement
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMADRESSE Indicateur de MAJ de l'ADRESSE de l'<27>tablissement
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMAUXILT Indicateur de MAJ de l'AUXILIARITE
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMSIGLE Indicateur de MAJ du SIGLE
2013-06-19 08:24:49 +00:00
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLEN Indicateur de MAJ du caract<63>re EXPLOITANT entrep
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLET Indicateur de MAJ du caract<63>re EXPLOITANT <20>tab
*/
'00000000000'.
initstr(1, 1 ) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP
2013-06-19 08:24:49 +00:00
initstr($c['L1_NOM'], 38 ) . // Facultatif L1_nomen Ligne 1<>: Nom de l'entreprise
initstr($c['L2_NOM2'], 38 ) . // Facultatif L2_COMP Ligne 2<>: Compl<70>ment de nom
initstr($c['L3_ADRCOMP'], 38 ) . // Facultatif L3_CADR Ligne 3<>: Compl<70>ment d'adresse
initstr($c['L4_VOIE'], 38 ) . // Facultatif L4_VOIE Ligne 4<>: Adresse
initstr($c['L5_DISTSP'], 38 ) . // Facultatif L5_DISP Ligne 5<>: Distribution sp<73>ciale
initstr($c['L6_POST'], 38 ) . // Facultatif L6_POST Ligne 6<>: Code Postal, commune, etc..
initstr($c['L7_PAYS'], 38 ) . // Facultatif L7_ETRG Ligne 7<>: Pays si <20>tranger
initstr($b['insEAEANN'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANN Ann<6E>e de validit<69> des rubriques de niveau ENTREP provenant des EAE*
initstr($b['insEAEAPEN'], 5 ) . // Facultatif EAEAPEN Activit<69> principale de l'entreprise issue des EAE
initstr($b['insEAESEC1N'], 5 ) . // Facultatif inseaesec1n Activit<69> secondaire n<>1 de l'entreprise issue des EAE
initstr($b['insEAESEC2N'], 5 ) . // Facultatif inseaesec2n Activit<69> secondaire n<>2 de l'entreprise issue des EAE
initstr($b['insEAESEC3N'], 5 ) . // Facultatif inseaesec3n Activit<69> secondaire n<>3 de l'entreprise issue des EAE
initstr($b['insEAESEC4N'], 5 ) . // Facultatif inseaesec4n Activit<69> secondaire n<>4 de l'entreprise issue des EAE
initstr($a['GeoLat'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSX Latitude en <20> et d<>cimales de <20> (format WGS1984)
initstr($a['GeoLon'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSY Longitude en <20> et d<>cimales de <20> (format WGS1984)
initstr($a['GeoPrecis'], 1 , '0', ALIGN_RIGHT) . // Facultatif GPSP Niveau de pr<70>cision du g<>ocodage
initstr($a['GeoInfos']['NZUS'], 10 ) . // Facultatif ZUS Identifiant de la Zone Urbaine Sensible
2013-06-19 08:24:49 +00:00
initstr($a['GeoInfos']['NZRU'], 10 ) . // Facultatif ZRU Identifiant de la Zone de R<>novation Urbaine
initstr($a['GeoInfos']['NZFU'], 10 ) . // Facultatif ZFU Identifiant de la Zone Franche Urbaine
2013-06-19 08:24:49 +00:00
initstr($a['GeoInfos']['NCUCS'], 10 ) . // Facultatif CUCS Identifiant de la Zone Contrat Urbain de Coh<6F>sion Social
initstr($a['GeoInfos']['NAFR'], 10 ) . // Facultatif AFR Identifiant de la Zone AFR
initstr($a['GeoInfos']['NZRR'], 10 ) . // Facultatif ZRR Identifiant de la ZRR
2013-06-19 08:24:49 +00:00
initstr($a['TvaNumero'], 15 ) . // Facultatif TVA Num<75>ro de TVA Intracommunataire
initstr($a['TvaAttribue'], 1 , '0', ALIGN_RIGHT) . // Facultatif TVAVALIDE Num<75>ro de TVA valid<69>
initstr($a['AncienSiege'], 1 , '0', ALIGN_RIGHT) . // Facultatif ANCIENSIEGE Ancien si<73>ge
initstr($a['Isin'], 12 ) . // Facultatif CODEISIN Code ISIN de l'entreprise si cotation en bourse
// A voir
initstr($a['dir1NomPrenom'], 40 ) . // Facultatif PPDIR1NOM Nom du principal dirigeant
2013-06-19 08:24:49 +00:00
initstr('', 30 ) . // Facultatif PPDIR1PRENOM Pr<50>nom du principal dirigeant
initstr('', 40 ) . // Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant
initstr(str_replace('-','',$a['dir1DateNaiss']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1DNAISS Date de naissance
initstr($a['dir1LieuNaiss'], 35 ) . // Facultatif PPDIR1LNAISS Lieu de Naissance
initstr($a['dir1Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1FONC Code Fonction
initstr(str_replace('-','',$a['dir1DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1MAJ Date de MAJ du ppl dirigeant
// A voir
initstr($a['dir2NomPrenom'], 40 ) . // Facultatif PPDIR2NOM Nom du seconde principal dirigeant
2013-06-19 08:24:49 +00:00
initstr('', 30 ) . // Facultatif PPDIR2PRENOM Pr<50>nom du 2<>me principal dirigeant
initstr('', 40 ) . // Facultatif PPDIR2NNAISS Nom de naissance du 2<>me ppl dirigeant
initstr(str_replace('-','',$a['dir2DateNaiss']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2DNAISS Date de naissance du 2<>me ppl dirigeant
initstr($a['dir2LieuNaiss'], 35 ) . // Facultatif PPDIR2LNAISS Lieu de Naissance du 2<>me ppl dirigeant
initstr($a['dir2Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2FONC Code Fonction du 2<>me ppl dirigeant
initstr(str_replace('-','',$a['dir2DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2MAJ Date de MAJ du 2<>me ppl dirigeant
initstr(str_replace('-','',$a['bilanDate']), 8 , '0', ALIGN_RIGHT) . // Facultatif BILANCLOT Date de derni<6E>re cl<63>ture de bilan disponible
initstr($a['bilanMois'], 2 , '0', ALIGN_RIGHT) . // Facultatif BILANDUREE Dur<75>e du dernier exercice disponible
initstr($a['bilanFL'], 15 , '0', ALIGN_RIGHT) . // Facultatif BILANCA Chiffre d'affaires au dernier bilan disponible
2013-06-19 08:24:49 +00:00
initstr($a['bilanHN'], 15 , '0', ALIGN_RIGHT) . // Facultatif BILANRES R<>sultat au dernier bilan disponible
initstr('', 41 ) ; // Facultatif FILLER1 Zone libre
return $str;
}
function genereLignes400($siren, &$nbLignes=0, $optionEOL) {
global $iInsee, $a, $nbLignes;
$mBil=new MBilans($siren);
$tabBilans=@$mBil->listeBilans();
$derBilan=current($tabBilans);
$p=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$derBilan['dateExercice']), $derBilan['typeBilan']);
//print_r($p);
if ($p['CONSOLIDE']=='S') $numLiasse='2033';
else $numLiasse='2050';
$unite=strtoupper($p['MONNAIE_LIV_UNITE']);
if ($unite=='') $unite='U';
2013-06-19 08:24:49 +00:00
$strIni=initstr(400, 3) . // Obligatoire CODE_ENTETE Ligne de description structur<75>e de l'identit<69>
initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Num<75>ro unique d'identification interne d'un <20>tablissement S&D
initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise
2013-06-19 08:24:49 +00:00
initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'<27>tablissement
initstr($a['Source'], 3 , '0', ALIGN_RIGHT) . // Obligatoire SOURCE Source de la fiche d'identit<69>
initstr($iInsee->valideSiren($siren,$nic), 1 , '0', ALIGN_RIGHT) . // Obligatoire SIRETVALIDE Siren/siret valide
2013-06-19 08:24:49 +00:00
initstr($a['numRC'], 10 ) . // Facultatif NUMRCS Num<75>ro de Registre du Commerce et des Soci<63>t<EFBFBD>s
initstr($a['Tribunal'], 6 ) . // Facultatif TRIBUNAL Identifiant du Tribunal
2013-06-19 08:24:49 +00:00
initstr(str_replace('-','',$p['DATE_FRAICHE_BILAN']), 8, '0', ALIGN_RIGHT) . // DATEMAJ Date de la derni<6E>re mise <20> jour du bilan dans la base S&D Format AAAAMMJJ
initstr(substr($p['DATE_FRAICHE_BILAN'],0,4), 4, '0', ALIGN_RIGHT) . // MILLESIME Ann<6E>e du bilan
initstr(str_replace('-','',$p['DATE_CLOTURE']), 8, '0', ALIGN_RIGHT) . // BILAN_DATE Date de cl<63>ture du bilan Format AAAAMMJJ
initstr($p['DUREE_MOIS'], 2, '0', ALIGN_RIGHT) . // BILAN_DUREE Dur<75>e de l'exercice en mois
initstr(str_replace('-','',$p['DATE_CLOTURE_PRE']), 8, '0', ALIGN_RIGHT) . // BILAN_DATEP Date de cl<63>ture du bilan pr<70>c<EFBFBD>dent Format AAAAMMJJ
initstr($p['DUREE_MOIS_PRE'], 2, '0', ALIGN_RIGHT) . // BILAN_DUREEP Dur<75>e de l'exercice pr<70>c<EFBFBD>dent en mois
initstr($numLiasse,4) . // BILAN_LIASSE Num<75>ro de la premi<6D>re liasse du bilan 2033,2050
initstr($p['CONSOLIDE'], 1) . // BILAN_TYPE Type de bilan S=R<>el Normal Simplifi<66>, C=Consolid<69>, N=R<>el Normal
initstr($p['MONNAIE'], 3) . // BILAN_MONNAIE Code devise de livraison selon la norme ISO 4217 (3 lettres)
initstr($p['MONNAIE_ORI'], 3) . // BILAN_MONNAIEO Code devise d'origine du bilan selon la norme ISO 4217*
2013-06-19 08:24:49 +00:00
initstr($unite, 1); // BILAN_UNITE Unit<69> du bilan livr<76> U=en unit<69> de devise, K=en milliers, M=en millions
unset($p['SIREN']);
unset($p['SOURCE']);
unset($p['devise']);
unset($p['DATE_FRAICHE_BILAN']);
unset($p['DATE_CLOTURE']);
unset($p['DATE_CLOTURE_PRE']);
unset($p['DUREE_MOIS']);
unset($p['DUREE_MOIS_PRE']);
unset($p['MONNAIE']);
unset($p['CONSOLIDE']);
unset($p['MONNAIE_ORI']);
unset($p['MONNAIE_LIV_UNITE']);
if (count($p)==0) return '';
2013-06-19 08:24:49 +00:00
$strIni.=initstr(count($p), 4, '0', ALIGN_RIGHT); // BILAN_NBPOSTES Nombre de postes livr<76>s
$nbP=0;$strP=$strRet='';
foreach ($p as $code=>$valeur) {
$nbP++;
if ($valeur>=0) $signe='+';
else $signe='-';
$strP.= initstr($code, 4).$signe.initstr(abs($valeur), 20, '0', ALIGN_RIGHT);
if($nbP<76) continue;
$strRet.=initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL;
$nbLignes++;
$nbP=0;$strP='';
}
if($nbP<76) {
2013-06-19 08:24:49 +00:00
// Ecriture de la derni<6E>re ligne sauf s'il y a dej<65> 76 postes
$strRet.=initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL;
$nbLignes++;
}
return $strRet;
}
?>