1428 lines
88 KiB
PHP
1428 lines
88 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||
<?php
|
||
|
||
if (!defined('VERSION_FICHIER_BODACC'))
|
||
define('VERSION_FICHIER_BODACC','0106');
|
||
|
||
/**
|
||
* @todo
|
||
* 2. Pouvoir faire du multiligne avec : 106 Libellé du Périmètre de la vente
|
||
* 5. JugesCommissaires à inté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]
|
||
Génère les fichiers des clients en surveillance ou diffusion des annonces BODACC.
|
||
|
||
Options :
|
||
-d Clients en Diffusion Bodacc (par défaut)
|
||
-s Clients en Surveillance Bodacc
|
||
-e Ne pas tenir compte de la date de dernière exécution du script
|
||
-i Ne pas exécuter en réel (pas de MAJ des infos d'exécution: n°tour, dates trt, fichier en rép tempo...)
|
||
-c:AAA Limiter le traitement au fichier de l'abonné AAA
|
||
-r:XX Faire une rétroactivté 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': // ?
|
||
case '102': // Activité déclarée au Bodacc
|
||
case '103': // Texte rectificatif
|
||
case '104': // Annonce Bodacc Complète
|
||
case '105': // Structure dirigeants
|
||
$tabLigne=str_split($chaine, $lonLigne);
|
||
foreach ($tabLigne as $i=>$ligne) {
|
||
$str.=initstr($typeLigne.$enteteLigne.$ligne, LONGUEUR_LIGNE_SORTIE).$eol;
|
||
$nbLignes++;
|
||
}
|
||
break;
|
||
default:
|
||
die("ERREUR : Structure de sortie n°$typeLigne non prise en charge !\n");
|
||
break;
|
||
}
|
||
return $str;
|
||
}
|
||
function getListeAdherents($prestation, $codeAdherent='') {
|
||
$strCodeAdherent='';
|
||
if ($codeAdherent<>'') $strCodeAdherent.=" AND q.loginprestation_c='$codeAdherent' ";
|
||
$iDbCrm=new WDB('sugarcrm');
|
||
$rep=$iDbCrm->select('cases_cstm q, accounts a, cases p LEFT JOIN contacts_cases k ON p.id = k.case_id LEFT JOIN contacts c ON k.contact_id = c.id LEFT JOIN contacts_cstm s ON c.id = s.id_c',
|
||
'p.id, p.case_number, p.name, p.account_id, a.name, q.typeprestation_c, q.datemiseenplace_c, q.datefinprestation_c, q.prestatest_c, q.loginprestation_c, q.passwordprestation_c, q.supportprestation_c, q.optionsupport_c, q.freqenvois_c, q.formatdesenvois_c, q.trtnumerotour_c, q.trtdatederniereexec_c*1 as derniereExec, q.optionsprestation_c, k.contact_id, k.deleted as lienContactDeleted, c.deleted as ContactDeleted, c.salutation, c.first_name, c.last_name, c.title, c.department, c.phone_mobile, c.phone_work, c.phone_fax, c.email1, c.email2, c.primary_address_street, c.primary_address_city, c.primary_address_postalcode, s.typedecontact_c', "p.deleted=0 AND p.id=q.id_c AND q.typeprestation_c='$prestation' AND q.prestationactive_c=1 AND p.account_id=a.id AND a.deleted=0 $strCodeAdherent ORDER BY p.case_number ASC", true, MYSQL_ASSOC);
|
||
//print_r($rep);
|
||
$tabPrestation=array();
|
||
foreach ($rep as $i=>$contacts) {
|
||
$numPrestation=$contacts['case_number'];
|
||
if ($contacts['lienContactDeleted']==0 && $contacts['ContactDeleted']==0) {
|
||
if ($contacts['email1']<>'') $email=$contacts['email1'];
|
||
else $email=$contacts['email2'];
|
||
if (!isset($tabPrestation[$numPrestation])) {
|
||
// echo "Ligne $i, prestation $numPrestation : ".$contacts['last_name']."\n";
|
||
$tabPrestation[$numPrestation]=array(
|
||
'id'=>$contacts['case_number'],
|
||
'idPrestationBdd'=>$contacts['id'],
|
||
'nomClient'=>$contacts['name'],
|
||
'typePrestation'=>$contacts['typeprestation_c'],
|
||
'dateDebut'=>$contacts['datemiseenplace_c'],
|
||
'dateFin'=>$contacts['datefinprestation_c'],
|
||
'test'=>$contacts['prestatest_c'],
|
||
'loginPrestation'=>$contacts['loginprestation_c'],
|
||
'passwPrestation'=>$contacts['passwordprestation_c'],
|
||
'supportPrestation'=>$contacts['supportprestation_c'],
|
||
'optionSupport'=>$contacts['optionsupport_c'],
|
||
'freqEnvois'=>$contacts['freqenvois_c'],
|
||
'formatEnvois'=>$contacts['formatdesenvois_c'],
|
||
'numeroDeTour'=>$contacts['trtnumerotour_c'],
|
||
'dateDerniereExec'=>$contacts['derniereExec']*1,
|
||
'optionPrestation'=>$contacts['optionsprestation_c'],
|
||
'contacts'=>array(array( 'salutation'=>$contacts['salutation'],
|
||
'prenom'=>$contacts['first_name'],
|
||
'nom'=>$contacts['last_name'],
|
||
'fonction'=>$contacts['title'],
|
||
'tel_por'=>$contacts['phone_mobile'],
|
||
'tel_bur'=>$contacts['phone_work'],
|
||
'tel_fax'=>$contacts['phone_fax'],
|
||
'email'=>$email,
|
||
'adresse'=>$contacts['primary_address_street'],
|
||
'ville'=>$contacts['primary_address_city'],
|
||
'codePos'=>$contacts['primary_address_postalcode'],
|
||
'typeContact'=>$contacts['typedecontact_c'])));
|
||
} else {
|
||
// echo "Ligne $i, prestation $numPrestation : ".$contacts['last_name']."\n";
|
||
$tabPrestation[$numPrestation]['contacts']=array_merge($tabPrestation[$numPrestation]['contacts'], array(
|
||
array( 'salutation'=>$contacts['salutation'],
|
||
'prenom'=>$contacts['first_name'],
|
||
'nom'=>$contacts['last_name'],
|
||
'fonction'=>$contacts['title'],
|
||
'tel_por'=>$contacts['phone_mobile'],
|
||
'tel_bur'=>$contacts['phone_work'],
|
||
'tel_fax'=>$contacts['phone_fax'],
|
||
'email'=>$email,
|
||
'adresse'=>$contacts['primary_address_street'],
|
||
'ville'=>$contacts['primary_address_city'],
|
||
'codePos'=>$contacts['primary_address_postalcode'],
|
||
'typeContact'=>$contacts['typedecontact_c'])));
|
||
}
|
||
}}
|
||
return $tabPrestation;
|
||
}
|
||
|
||
echo date ('Y/m/d - H:i:s')." - Début du traitement diffusion BODACC.\n";
|
||
|
||
/** On récupère la liste des Adhérents **/
|
||
|
||
//die(print_r(getListeAdherents('extranet')));
|
||
$tabAdherents=getListeAdherents($typePrestaton, $codeAdherent);
|
||
//print_r($tabAdherents);die();
|
||
$nbClients=count($tabAdherents);
|
||
echo date ('Y/m/d - H:i:s')." - Il y a $nbClients client(s) à servir en $typePrestaton.".EOL;
|
||
$strMessage=date ('Y/m/d - H:i:s')." - Il y a $nbClients client(s) à 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';
|
||
|
||
/** Le client préfère un paramétrage UNIX ou Window pour ses fins de lignes **/
|
||
if (strpos($tabAdherent['optionSupport'], 'os=dos')) $optionEOL="\r\n";
|
||
elseif (strpos($tabAdherent['optionSupport'], 'os=unix')) $optionEOL="\n";
|
||
else $optionEOL=EOL;
|
||
|
||
$tabOptOutput=array();
|
||
|
||
if($tabAdherent['dateDebut']<>'' && $tabAdherent['dateDebut']<>'0000-00-00')
|
||
$dateDebutPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDebut']);
|
||
else
|
||
$dateDebutPrestation=false;
|
||
|
||
if($tabAdherent['dateFin']<>'' && $tabAdherent['dateFin']<>'0000-00-00')
|
||
$dateFinPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateFin']);
|
||
else
|
||
$dateFinPrestation=false;
|
||
|
||
//die($tabAdherent['dateDerniereExec']);
|
||
if ($ignoreDateDerExec)
|
||
$dateDernierTraitement=false;
|
||
elseif ($tabAdherent['dateDerniereExec']<>0)
|
||
$dateDernierTraitement=$tabAdherent['dateDerniereExec'];//WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDerniereExec']);
|
||
else
|
||
$dateDernierTraitement=false;
|
||
|
||
|
||
if ($dateDebutPrestation && $dateDebutPrestation>DATE) // La date de démarrage de la prestation n'est pas encore arrivée
|
||
{
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : La prestation démarre le $dateDebutPrestation !".EOL;
|
||
continue;
|
||
}
|
||
|
||
if ($dateFinPrestation && DATE>$dateFinPrestation) // La date de fin de la prestation est révolue
|
||
{
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fin de la prestation le $dateFinPrestation (Dernière exécution le $dateDernierTraitement) !".EOL;
|
||
continue;
|
||
}
|
||
|
||
if ($dateDernierTraitement && substr($dateDernierTraitement,0,8)*1==DATE*1)
|
||
{ echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Traitement déjà exécuté aujourd'hui !".EOL;
|
||
continue;
|
||
} elseif ($dateDernierTraitement==0) {
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Jamais exécutée pour ce client !".EOL;
|
||
$dateDernierTraitement=false;
|
||
/* Il faudra vérifier si on génère le stocke et depuis quand sinon on prond le dernier Bodacc */
|
||
}// Bloc a décommenter
|
||
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Export des annonces en cours... (dernier traitement le $dateDernierTraitement)".EOL;
|
||
|
||
/**
|
||
** On génère la ligne d'entête
|
||
**/
|
||
$fp=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', 'w');
|
||
if ($fp==false) die('ERREUR : Impossible de créer le fichier !');
|
||
error_reporting(E_ALL ^ E_NOTICE);
|
||
$str= initstr('001', 3, '0', ALIGN_RIGHT) . // Type de ligne
|
||
initstr(date('YmdHis'), 14) . // Date de génération du fichier
|
||
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
|
||
initstr($clientIdentifiant, 36) . // Identifiant Client
|
||
initstr($typePrestaton, 32) . // Type de prestation
|
||
initstr(VERSION_FICHIER_BODACC, 4) . // Type de prestation
|
||
initstr(FILLER, 1901) . // FILLER
|
||
'';
|
||
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
|
||
$nbLignes=1;
|
||
|
||
/**
|
||
** On génère les lignes de détail
|
||
**/
|
||
$strRubrique='';
|
||
$tabRubCollecte=array();
|
||
if (strpos($tabAdherent['optionPrestation'], 'comptes')) { // Export du Bodacc C - Dépôt des comptes
|
||
$strRubrique.="'comptes',";
|
||
$tabRubCollecte[]=" typeEven LIKE '3%' ";
|
||
}
|
||
if (strpos($tabAdherent['optionPrestation'], 'creations')) { // Export des cré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%' ";
|
||
}
|
||
|
||
if (strpos($tabAdherent['optionPrestation'], '101')) // Commentaire inclus dans l'annonce si nécessaire
|
||
$tabOptOutput[101]=true; else $tabOptOutput[101]=false;
|
||
if (strpos($tabAdherent['optionPrestation'], '102')) // Activite déclaré au Bodacc
|
||
$tabOptOutput[102]=true; else $tabOptOutput[102]=false;
|
||
if (strpos($tabAdherent['optionPrestation'], '104')) // Annonce complète au format texte
|
||
$tabOptOutput[104]=true; else $tabOptOutput[104]=false;
|
||
if (strpos($tabAdherent['optionPrestation'], '105')) // Structure Dirigeants BODACC
|
||
$tabOptOutput[105]=true; else $tabOptOutput[105]=false;
|
||
if (strpos($tabAdherent['optionPrestation'], '200')) // Structure Identité 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';
|
||
// On filtre les rubriques demandées
|
||
if ($strRubrique<>'') {
|
||
$where.=' AND Rubrique IN('. substr($strRubrique,0,strlen($strRubrique)-1) .') ';
|
||
if (count($tabRubCollecte)>0)
|
||
$whereCol.=' AND ('.implode(' OR ', $tabRubCollecte).') ';
|
||
}
|
||
// On ne prend que les dernières annonces depuis la dernière exé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) ) ";
|
||
}
|
||
}
|
||
// ... 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) ) ";
|
||
}*/
|
||
|
||
|
||
$where.=" AND Bodacc_Date_Parution>'2010-05-11' "; /** @todo A supprimer après le 19 juillet 2010 ... **/
|
||
$whereCol.=" AND a.dateSource>'2010-05-12 02:00:00' AND a.dateSuppr=0 "; // Idem ... (Prev: après la rétro du 22 mai 2008)
|
||
|
||
if ($typePrestaton=='diffusionBodacc') {
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : diffusion...".EOL;
|
||
$tables='bodacc_detail d';
|
||
$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);
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbSirenClient unité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) )";
|
||
/**/
|
||
}
|
||
else die('Type de prestation non gérée : '.$typePrestaton.EOL);
|
||
|
||
//$where.=" AND DATEDIFF(NOW(), Bodacc_Date_Parution)<=60 "; // NE PAS ENVOYER D'ANNONCES DONT LES DELAIS DE FORCLUSION SONT PASSEES
|
||
/* 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;
|
||
$nbAnnonces=$iDb->select($tables, $fields, $where, true, MYSQL_ASSOC, true); // Gérer la table surveillance
|
||
$strCollecte='(Bodacc seul)';
|
||
}
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbAnnonces annonces à traiter $strCollecte...".EOL;
|
||
//echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Début de génération du fichier client en version $versionEvenClient...".EOL;
|
||
|
||
//if ($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;
|
||
$nbAnnonces=$iDb->select($tables, $fields, $where, true, MYSQL_ASSOC, true); // Gérer la table surveillance
|
||
$strCollecte='(Bodacc seul)';
|
||
}
|
||
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbAnnonces liens entrep/annonces à traiter...".EOL;
|
||
}
|
||
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Début de génération du fichier client en version $versionEvenClient...".EOL;
|
||
|
||
//echo date ('Y/m/d - H:i:s')." - SELECT $fields FROM $tables WHERE $where".EOL;
|
||
|
||
//while(=$iDb->fetch(MYSQL_ASSOC)) {
|
||
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
|
||
|
||
/** Marquer les liens REF/SIREN envoyées à chaque client
|
||
**/
|
||
|
||
$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) {
|
||
/** On doit recherche des mandataires absent ou non décodé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) {
|
||
// As t'on déjà traité ce type de mandataire ?
|
||
if (in_array($mand['inter'.$iInter.'type'],$interType)) continue;
|
||
|
||
//print_r($annonce);
|
||
$mandId=$mand['inter'.$iInter.'id'];
|
||
if ($mandId>0) {
|
||
// Il y a un mandataire avec un identifiant numé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 {
|
||
// Il y a un mandataire sans identifiant numérique
|
||
|
||
if (trim($mand['inter'.$iInter.'nom'])=='' && substr($mand['complement'],0,10)=='Mandataire')
|
||
// Uniquement avec le nom du mandataire en complément
|
||
$interNom=substr($mand['complement'],13,strlen($mand['complement'])-13);
|
||
else {
|
||
if (preg_match('/^(.*), Télé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'];
|
||
}
|
||
// 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;
|
||
// echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Evènement $even non géré 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
|
||
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
|
||
initstr($annonce['id'], 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce
|
||
initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
|
||
initstr($annonce['nic'], 5, '0', ALIGN_RIGHT) . // NIC de l'établissement
|
||
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'anné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
|
||
initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
|
||
initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc
|
||
initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
|
||
// R=Rectif, S=Suppression
|
||
initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce diff. de I, numéro de l'annonce corrigée
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
|
||
initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
|
||
initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parut°/année de annonce corrigée
|
||
// (ex: 230A, 001B)
|
||
// initstr($annonce['corrTexteRectificatif'], XXXXXX, '0', ALIGN_RIGHT) . // Si diff. I,
|
||
// initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8, '0') . // Date de l'intégration en bae S&D
|
||
|
||
initstr($refLigneClient, 18) . // REFERENCE DU CLIENT
|
||
initstr($tribunalCode, 6) .
|
||
initstr($annonce['RC'], 9) . // Numéro de RC (Registre du Commerce) de l'entreprise
|
||
initstr($annonce['raisonSociale'], 150) . // Raison sociale de l'entreprise
|
||
initstr($annonce['nomCommercial'], 100) . // Nom commercial de l'entreprise
|
||
initstr($annonce['enseigne'], 100) . // Enseigne de l'établissement
|
||
initstr($annonce['nationalite'], 30) . // Nationalité si Personne physique
|
||
//initstr(MInsee::getFJInsee($annonce['siren']), 4) . // FJ codification Insee
|
||
initstr('0000', 4) . // FJ codification Insee
|
||
initstr($annonce['FJ'], 90) . // Forme juridique de l'entreprise déclarée au BODACC
|
||
initstr(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) .
|
||
initstr($annonce['codePostal'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
|
||
initstr($annonce['villeSiege'], 45) . // Ville de l'établissement
|
||
// Adresse du siège / 150 car
|
||
initstr($annonce['adrNumSiege'], 4, '0', ALIGN_RIGHT) . //
|
||
initstr($annonce['adrIndRepSiege'], 1) . //
|
||
initstr($annonce['adrTypVoieSiege'], 5) .
|
||
initstr($annonce['adrLibVoieSiege'], 50) .
|
||
initstr($annonce['adrComp1Siege'], 50) .
|
||
initstr($annonce['adrComp2Siege'], 40) .
|
||
initstr($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
|
||
initstr($annonce['villeSiege'], 45) . // Ville de l'établissement
|
||
initstr(implode('',$tabEven), 32, '0', ALIGN_RIGHT) . // Code Evènement Bodacc n°1 à 8
|
||
initstr($annonce['publicationNom'], 100) . // NOM du JAL si publication
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['publicationDate']), 8) . // Date de publication du JAL si publication
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateCessationPaiement']), 8) . // Date de cessation des paiements
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateJugement']), 8) . // Date du jugement
|
||
initstr(FILLER, 1) . // FILLER (Replace type de création)
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateDebutActivite']), 8) . // Date de début d'activité
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateEffet']), 8) . // Date d'effet (Ventes/MMD)
|
||
// ou Date clôture exercice si ann dépôt comptes
|
||
initstr(round($annonce['VenteMt']), 15, '0', ALIGN_RIGHT) . // Montant de la vente
|
||
initstr($annonce['VenteDev'], 3) . // Devise de la ventre
|
||
initstr($annonce['Numero'], 35) . // Numéro de l'affaire au greffe
|
||
initstr($inter[0]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
||
initstr($inter[0]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
|
||
initstr($inter[0]['Nom'], 80) . // Raison sociale
|
||
initstr($inter[0]['Repr'], 80) . // Représentant
|
||
initstr($inter[0]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
|
||
initstr($inter[0]['adrBis'], 1) . // Adresse, Bis/Ter
|
||
initstr($inter[0]['adrType'], 4) . // Adresse, type de voie
|
||
initstr($inter[0]['adrLib'], 32) . // Adresse, libellé de la voie
|
||
initstr($inter[0]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
|
||
initstr($inter[0]['Ville'], 45) . // Adresse, commune
|
||
initstr($inter[0]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
|
||
initstr($inter[1]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
||
initstr($inter[1]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
|
||
initstr($inter[1]['Nom'], 80) . // Raison sociale
|
||
initstr($inter[1]['Repr'], 80) . // Représentant
|
||
initstr($inter[1]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
|
||
initstr($inter[1]['adrBis'], 1) . // Adresse, Bis/Ter
|
||
initstr($inter[1]['adrType'], 4) . // Adresse, type de voie
|
||
initstr($inter[1]['adrLib'], 32) . // Adresse, libellé de la voie
|
||
initstr($inter[1]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
|
||
initstr($inter[1]['Ville'], 45) . // Adresse, commune
|
||
initstr($inter[1]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
|
||
initstr(FILLER/*$annonce['JugeCommissaireNom']*/, 30) . // NOM du JugeCommissaire
|
||
initstr(FILLER/*$annonce['JugeCommissairePrenom']*/, 30) . // Prénom du JugeCommissaire
|
||
initstr(FILLER/*$annonce['JugeCommissaireSupplNom']*/, 30) . // NOM du JugeCommissaire suppléant
|
||
initstr(FILLER/*$annonce['JugeCommissaireSupplPrenom']*/, 30) . // Prénom du JugeCommissaire suppléant
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinDepotCreances']), 8) . // Date limite pour le dépôt des créances
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinObservation']), 8) . // Date de fin de la période d'observation
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8) . // Date d'insertion dans la base S&D
|
||
'';
|
||
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
|
||
$nbLignes++;
|
||
// if ($tabOptOutput['commentaire']==true && $annonce['commentaires']<>'')
|
||
// fwrite($fp, '101'.initsrt($annonce['commentaires'],1500).$eol); // Commentaire textuel si nécessaire
|
||
$enteteL= initstr($annonce['id'], 10, '0', ALIGN_RIGHT) . // Numéro unique d'identification interne d'une annonce
|
||
initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
|
||
initstr($annonce['nic'], 5, '0', ALIGN_RIGHT) . // NIC de l'établissement
|
||
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'anné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
|
||
initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
|
||
initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc
|
||
initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
|
||
// R=Rectificatif, S=Suppression
|
||
initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce différent de I, numéro de l'annonce corrigée
|
||
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
|
||
initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
|
||
initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parution dans l'année de annonce corri(ex: 230A, 001B)
|
||
initstr($refLigneClient, 18) . // REF CLI
|
||
'';
|
||
|
||
if ($tabOptOutput[101]==true && $annonce['commentaires']<>'') // Commentaires
|
||
fwrite($fp, genereMultiLigne('101', $enteteL, $annonce['commentaires'], $optionEOL, $nbLignes));
|
||
if ($tabOptOutput[102]==true && $annonce['activite']<>'') // Activité déclarée au Bodacc
|
||
fwrite($fp, genereMultiLigne('102', $enteteL, $annonce['activite'], $optionEOL, $nbLignes));
|
||
if ($annonce['corrTexteRectificatif']<>'') // Texte rectificatif
|
||
fwrite($fp, genereMultiLigne('103', $enteteL, $annonce['corrTexteRectificatif'], $optionEOL, $nbLignes));
|
||
if ($tabOptOutput[104]==true) { // Annonce Bodacc Complète
|
||
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";
|
||
}
|
||
|
||
/**
|
||
** On génère la ligne de fin de fichier
|
||
**/
|
||
$nbLignes++;
|
||
$str= initstr('999', 3, '0', ALIGN_RIGHT) . // Type de ligne
|
||
initstr(date('YmdHis'), 14) . // Date & Heure de fin génération du fichier
|
||
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
|
||
initstr($clientIdentifiant, 36) . // Identifiant Client
|
||
initstr($typePrestaton, 32) . // Type de prestation
|
||
initstr($nbLignes, 10, '0', ALIGN_RIGHT) . // Nombre de lignes Total du fichier
|
||
'';
|
||
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE)); // Pas de fin de ligne sur la dernière ligne
|
||
fclose($fp);
|
||
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient :Fichier client terminé.".EOL;
|
||
|
||
/** Mise à jour des numéros de tour et des date de dernières exécutions
|
||
**/
|
||
if ($incrementationDesTour) {
|
||
$iDbCrm=new WDB('sugarcrm');
|
||
$rep=$iDbCrm->update('cases_cstm', array('trtdatederniereexec_c'=>date('YmdHis'), 'trtnumerotour_c'=> $clientNumTourFichier),
|
||
"id_c='".$tabAdherent['idPrestationBdd']."'");
|
||
}
|
||
|
||
/** Conversion du fichier si nécessaire en CSV
|
||
**/
|
||
if ($tabAdherent['formatEnvois']=='csv') {
|
||
$ligneOut='';
|
||
$ligne001=$ligne100=$ligne104=$ligne999=0;
|
||
$tabLignes=file(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
|
||
$fichier_csv=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv';
|
||
$fp=fopen(REP_TEMP . $fichier_csv, 'w');
|
||
foreach ($tabLignes as $i=>$ligne) {
|
||
$ecrireLignePre=false;
|
||
$typeLigne=substr($ligne, 0, 3)*1;
|
||
switch ($typeLigne) {
|
||
case 1: // Ligne ignorée
|
||
// Ecriture de l'entête
|
||
$siren ='Siren';
|
||
$nic ='Nic';
|
||
$ref ='Référence';
|
||
$numPar ='Parution';
|
||
$bodacc ='Bodacc';
|
||
$datePar='Date parution';
|
||
$numAnn ='Numéro Annonce';
|
||
$cor ='Type Annonce';
|
||
$libTri ='Tribunal';
|
||
$numRC ='Numéro RCS';
|
||
$raisonS='Raison sociale';
|
||
$catEven='Chapitre';
|
||
$txtEven='Evènement(s)';
|
||
$dateEve='Date évènement';
|
||
$txtAnn ='Texte Annonce';
|
||
$ligne001++;
|
||
break;
|
||
case 100: // Structure Bodacc
|
||
$ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$dateEve;$txtAnn";
|
||
$ligne100++;
|
||
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce
|
||
$nic = trim(substr($ligne, 22, 5 )); // Nic
|
||
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
|
||
$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année
|
||
$bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C
|
||
$datePar= WDate::dateT('Ymd','d/M/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ
|
||
$numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc
|
||
$typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
|
||
$corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion
|
||
$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ
|
||
$corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion
|
||
$corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion
|
||
$dateEve1=substr($ligne, 1144, 8 ); // Date de jugezment
|
||
$dateEve2=substr($ligne, 1161, 8 ); // Date d'effet, etc...
|
||
if ($dateEve1>0)
|
||
$dateEve=WDate::dateT('Ymd','d/M/Y',$dateEve1);
|
||
elseif ($dateEve2>0)
|
||
$dateEve=WDate::dateT('Ymd','d/M/Y',$dateEve2);
|
||
else
|
||
$dateEve='';
|
||
$cor='';
|
||
if ($typeAnn<>'I') $cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate);
|
||
switch($typeAnn) {
|
||
case 'I': $cor='Insertion'.$cor; break;
|
||
case 'A': $cor='Additif'.$cor; break;
|
||
case 'R': $cor='Rectificatif'.$cor; break;
|
||
case 'S': $cor='Suppression'.$cor; break;
|
||
default: break;
|
||
}
|
||
$codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc
|
||
$libTri=$iBodacc->getTribunalNom($codeTri);
|
||
|
||
$numRC = trim(substr($ligne, 95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise
|
||
$raisonS= trim(substr($ligne, 104 , 150 )); // Raison sociale de l'entreprise
|
||
$even=array();
|
||
$even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN
|
||
$even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN
|
||
$even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN
|
||
$even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN
|
||
$even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN
|
||
$even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN
|
||
$even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN
|
||
$even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN
|
||
$txtEven='';
|
||
foreach ($even as $codeEven)
|
||
if ($codeEven<>0) {
|
||
$txtEven.=$iBodacc->getEvenement($codeEven)." ($codeEven), ";
|
||
$catEven=$iBodacc->getChapitreEvenement($codeEven);
|
||
}
|
||
else
|
||
$txtEven.='';
|
||
$txtEven=substr($txtEven,0,strlen($txtEven)-2);
|
||
$txtAnn='';
|
||
$ecrireLignePre=true;
|
||
break;
|
||
case 104: // Annonce
|
||
$ligne104++;
|
||
$txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce
|
||
break;
|
||
case 999: // Ligne ignorée
|
||
$ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$dateEve;$txtAnn";
|
||
$ligne999++;
|
||
$ecrireLignePre=true;
|
||
break;
|
||
default: // Ligne non gérée
|
||
break;
|
||
}
|
||
if ($ecrireLignePre) fwrite($fp, $ligneOut.EOL);
|
||
}
|
||
fclose($fp);
|
||
echo date ('Y/m/d - H:i:s')." - Conversion du fichier $fichier_csv terminée !".EOL;
|
||
}
|
||
/** Conversion du fichier si né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)
|
||
echo date('Y/m/d - H:i:s') . " - Conversion spécifique BIL/SO2000 (abonné $numeroAbonneBil) terminée !".EOL;
|
||
else
|
||
echo date('Y/m/d - H:i:s') . " - ERREUR lors de la conversion du fichier S&D $fichierIn en BIL/SO2000 (abonné $numeroAbonneBil) : $ret !".EOL;
|
||
}
|
||
|
||
/*Gzip ou zip zt envoi par mail ou dépot sur le site FTP*/
|
||
switch ($optionZip) {
|
||
case 'zip':
|
||
$zip = new ZipArchive;
|
||
$ficProduction=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.zip';
|
||
$res = $zip->open($repProduction.$ficProduction, ZipArchive::CREATE);
|
||
if ($res === TRUE) {
|
||
// $zip->addFromString('test.txt', 'file content goes here');
|
||
$zip->addFile( REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt',
|
||
$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
|
||
if ($tabAdherent['formatEnvois']=='csv')
|
||
$zip->addFile(REP_TEMP. $fichier_csv, $fichier_csv);
|
||
$zip->close();
|
||
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.zip OK...'.EOL;
|
||
} else {
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Zip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
|
||
}
|
||
break;
|
||
case 'gzip':
|
||
$ficProduction= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.gz';
|
||
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
|
||
$gz = gzopen($repProduction.$ficProduction,'w9');
|
||
if (!$gz) {
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
|
||
} else {
|
||
gzwrite($gz, $string);
|
||
gzclose($gz);
|
||
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.gz OK...'.EOL;
|
||
}
|
||
|
||
if ($tabAdherent['formatEnvois']=='csv') {
|
||
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv.gz';
|
||
$string=file_get_contents(REP_TEMP. $fichier_csv);
|
||
$gz = gzopen($repProduction.$ficProduction_csv,'w9');
|
||
if (!$gz) {
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier $fichier_csv impossible !".EOL;
|
||
} else {
|
||
gzwrite($gz, $string);
|
||
gzclose($gz);
|
||
echo date ('Y/m/d - H:i:s')." - Compression du fichier $ficProduction_csv OK...".EOL;
|
||
}
|
||
}
|
||
break;
|
||
case 'bzip2':
|
||
$ficProduction=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.bz2';
|
||
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
|
||
$bz = bzopen($repProduction.$ficProduction,'w');
|
||
// Ne sait pas si le niveau de compression 1 à 9 est implémenté pour cette fonction
|
||
if (!$bz) {
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 impossible pour ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
|
||
} else {
|
||
bzwrite($bz, $string, strlen($string));
|
||
bzclose($bz);
|
||
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.bz2 OK...'.EOL;
|
||
}
|
||
if ($tabAdherent['formatEnvois']=='csv') {
|
||
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv.bz2';
|
||
$string=file_get_contents(REP_TEMP. $fichier_csv);
|
||
$bz = bzopen($repProduction.$ficProduction_csv,'w');
|
||
if (!$bz) {
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 du fichier $fichier_csv impossible !".EOL;
|
||
} else {
|
||
bzwrite($bz, $string, strlen($string));
|
||
bzclose($bz);
|
||
echo date ('Y/m/d - H:i:s')." - Compression du fichier $ficProduction_csv OK...".EOL;
|
||
}
|
||
}
|
||
break;
|
||
default:
|
||
$ficProduction= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt';
|
||
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv';
|
||
if (!copy(REP_TEMP.$ficProduction, $repProduction.$ficProduction))
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction impossible !".EOL;
|
||
else
|
||
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été créé...".EOL;
|
||
if ($tabAdherent['formatEnvois']=='csv') {
|
||
if (!copy(REP_TEMP.$ficProduction_csv, $repProduction.$ficProduction_csv))
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction_csv impossible !".EOL;
|
||
else
|
||
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été créé...".EOL;
|
||
}
|
||
break;
|
||
}
|
||
|
||
/** Sauvegarde des fichiers dans clients **/
|
||
$repBakClient='/home/data/clients/'.strtolower($tabAdherent['nomClient']);
|
||
if (!file_exists($repBakClient)) {
|
||
echo date ('Y/m/d - H:i:s')." - ATTENTION : Les dossiers BACKUP du client ne sont pas correctement créés !".EOL;
|
||
if (!file_exists($repBakClient) && mkdir($repBakClient))
|
||
echo date ('Y/m/d - H:i:s')." - Le dossier Backup du client a été créé ($repBakClient)".EOL;
|
||
// if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv'))
|
||
// echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a été créé ($repFtpClient/recv)".EOL;
|
||
}
|
||
if (!copy($repProduction.$ficProduction, $repBakClient.'/'.$ficProduction))
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Copy du fichier $ficProduction dans Backup impossible !".EOL;
|
||
else
|
||
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été historisé...".EOL;
|
||
|
||
if ($tabAdherent['formatEnvois']=='csv') {
|
||
if (!copy($repProduction.$ficProduction_csv, $repBakClient.'/'.$ficProduction_csv))
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Historisation du fichier $ficProduction_csv impossible !".EOL;
|
||
else
|
||
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été historisé...".EOL;
|
||
}
|
||
|
||
/** Si FTP, déplacement dans les dossiers adéquats **/
|
||
if ($tabAdherent['supportPrestation']=='ftp' || $tabAdherent['supportPrestation']=='web') {//$repProduction.$ficProduction
|
||
$repFtpClient='/home/data/ftp/'.strtolower($tabAdherent['nomClient']);
|
||
if (!file_exists($repFtpClient) || !file_exists($repFtpClient.'/recv')) {
|
||
echo date ('Y/m/d - H:i:s')." - ATTENTION : Les dossiers FTP du client ne sont pas correctement créés !".EOL;
|
||
if (!file_exists($repFtpClient) && mkdir($repFtpClient))
|
||
echo date ('Y/m/d - H:i:s')." - Le dossier FTP du client a été créé ($repFtpClient)".EOL;
|
||
if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv'))
|
||
echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a été créé ($repFtpClient/recv)".EOL;
|
||
}
|
||
if (!move($repProduction.$ficProduction, $repFtpClient.'/recv/'.$ficProduction))
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction dans FTP/RECV impossible !".EOL;
|
||
else
|
||
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été déplacé dans FTP/RECV...".EOL;
|
||
|
||
if ($tabAdherent['formatEnvois']=='csv') {
|
||
if (!move($repProduction.$ficProduction_csv, $repFtpClient.'/recv/'.$ficProduction_csv))
|
||
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction_csv dans FTP/RECV impossible !".EOL;
|
||
else
|
||
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été déplacé dans FTP/RECV...".EOL;
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
|
||
$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);
|
||
|
||
$str= initstr(200, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité
|
||
initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Numéro unique d'identification interne d'un établissement S&D
|
||
initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise
|
||
initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'établissement
|
||
initstr($a['Source'], 3 , '0', ALIGN_RIGHT) . // Obligatoire SOURCE Source de la fiche d'identité
|
||
initstr($iInsee->valideSiren($siren,$nic), 1 , '0', ALIGN_RIGHT) . // Obligatoire SIRETVALIDE Siren/siret valide
|
||
initstr($a['numRC'], 10 ) . // Facultatif NUMRCS Numéro de Registre du Commerce et des Sociétés
|
||
initstr($a['Tribunal'], 6 ) . // Facultatif TRIBUNAL Identifiant du Tribunal
|
||
initstr(str_replace('-','',$a['dateMajIdentite']), 8 , '0', ALIGN_RIGHT) . // Obligatoire DATEMAJ Date de la dernière mise à jour dans la base S&D
|
||
initstr($a['Actif'], 1 , '0', ALIGN_RIGHT) . // Obligatoire ACTIF Établissement juridiquement actif
|
||
initstr($a['ActifEco'], 1 , '0', ALIGN_RIGHT) . // Obligatoire ACTIFECO Établissement économiquement actif
|
||
initstr($a['SituationJuridique'], 2 ) . // Obligatoire SITJUR Situation Juridique de l'entreprise
|
||
initstr('', 3 ) . // Facultatif EVE Dernier événement Insee recensé
|
||
initstr(str_replace('-','',$a['DateMajINSEE']), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEVE Date du dernier événement Insee recensé
|
||
initstr('', 2 ) . // Facultatif TYPETAB Type d'établissement concerné par l'événement
|
||
initstr($a['Siege'], 1 , '0', ALIGN_RIGHT) . // Obligatoire SIEGE Établissement siège, secondaire ou principal
|
||
initstr($a['Nom'], 160 ) . // Obligatoire NOM Raison Sociale
|
||
initstr($a['NomCommercial'], 160 ) . // Facultatif NOMCOM Nom commercial
|
||
initstr($a['Enseigne'], 80 ) . // Facultatif ENSEIGNE Enseigne de l'établissement
|
||
initstr($a['Sigle'], 40 ) . // Facultatif SIGLE sigle de l'entreprise
|
||
initstr($a['AdresseNum'], 4 , '0', ALIGN_RIGHT) . // Facultatif ADR_NUMVOIE Numéro dans la voie
|
||
initstr($a['AdresseBtq'], 1 ) . // Facultatif ADR_BTQ Indicateur de répétition (Bis, Ter, etc...)
|
||
initstr($a['AdresseVoie'], 4 ) . // Facultatif ADR_TYPVOIE Type de voie
|
||
initstr($a['AdresseRue'], 32 ) . // Obligatoire ADR_LIBVOIE Libellé de la voie
|
||
initstr($a['Ville'], 32 ) . // Obligatoire ADR_LIBCOM Commune
|
||
initstr($a['CP'], 5 , '0', ALIGN_RIGHT) . // Obligatoire ADR_CP Code postal
|
||
initstr($a['Adresse2'], 38 ) . // Facultatif ADR_COMP Complément d'adresse
|
||
initstr('', 38 ) . // Facultatif ADR_DISTSP Distribution spéciale
|
||
initstr($a['Pays'], 38 ) . // Facultatif PAYS Pays
|
||
initstr($a['PaysIso2'], 2 ) . // Facultatif PAYSISO2 Code Pays au format ISO2
|
||
initstr($a['Dept'], 2 ) . // Obligatoire ADR_DEP Département de l'établissement
|
||
initstr($a['codeCommune'], 3 , '0', ALIGN_RIGHT) . // Obligatoire ADR_COM Code commune de l'établissement
|
||
initstr(str_replace(' ','',$a['Rivoli']), 5 ) . // Facultatif CODEVOIE Code voie de l'établissement
|
||
initstr($a['codIris'], 4 ) . // Facultatif CODEIRIS Code Iris de l'établissement
|
||
initstr('', 5 ) . // Facultatif CODEILOT Code Ilot de l'établissement
|
||
initstr($a['AdresseDom'], 1 , '0', ALIGN_RIGHT) . // Facultatif ADRESSEDOM Indicateur d'adresse de domiciliation
|
||
initstr($a['Tel'], 15 ) . // Facultatif TEL Numéro de téléphone
|
||
initstr($a['Fax'], 15 ) . // Facultatif FAX Numéro de télécopie
|
||
initstr($a['Web'], 80 ) . // Facultatif WEB Site Web
|
||
initstr($a['Mail'], 80 ) . // Facultatif MAIL Adresse Email de contact générique
|
||
initstr($a['Auxiliaire'], 1 , '0', ALIGN_RIGHT) . // Facultatif AUXILT Auxiliarité de l'activité de l'établissement
|
||
initstr($a['Saisonnalite'], 1 , '0', ALIGN_RIGHT) . // Facultatif SAISONAT Saisonnalité de l'établissement
|
||
initstr($a['NatureActivite'], 2 , '0', ALIGN_RIGHT) . // Facultatif ACTIVNAT Nature de l'activité de l'établissement
|
||
initstr($a['OrigineCreation'], 2 ) . // Facultatif ORIGINE Origine de la création de l'établissement
|
||
initstr($a['TypeExploitation'], 2 , '0', ALIGN_RIGHT) . // Facultatif TYPEXPLOIT Type d'exploitation
|
||
initstr($a['LIEUACT'], 2 , '0', ALIGN_RIGHT) . // Facultatif LIEUACT Lieu de l'activité de l'établissement
|
||
initstr($a['ACTISURF'], 2 , '0', ALIGN_RIGHT) . // Facultatif ACTISURF Type de magasin
|
||
initstr($a['PRODPART'], 1 , '0', ALIGN_RIGHT) . // Facultatif PRODPART Participation particulière à la production de l'établissement
|
||
initstr($b['insARRONET'], 2 , '0', ALIGN_RIGHT) . // Facultatif ARRONET Arrondissement de l'établissement
|
||
initstr($b['insCTONET'], 3 , '0', ALIGN_RIGHT) . // Facultatif CTONET Canton
|
||
initstr($b['insTCD'], 2 , '0', ALIGN_RIGHT) . // Facultatif TCD Tranche de commune détaillée
|
||
initstr($b['insZEMET'], 2 , '0', ALIGN_RIGHT) . // Facultatif ZEMET Zone d'emploi
|
||
initstr($b['insDU'], 2 ) . // Facultatif DU Département de l'unité urbaine de localisation
|
||
initstr($b['insTU'], 1 ) . // Facultatif TU Taille de l'unité urbaine
|
||
initstr($b['insUU'], 2 ) . // Facultatif UU Numéro de l'untié urbaine
|
||
initstr(str_replace('-','',$a['DateCreaEt']), 8 , '0', ALIGN_RIGHT) . // Facultatif DCRET Date de création de l'établissement
|
||
initstr($a['NafEtab'], 5 ) . // Obligatoire APE_ETAB Code activité dans la NAF rév2 de l'établissement
|
||
initstr($a['NaceEtab'], 5 ) . // Facultatif NACE_ETAB Code activité NACE de l'établissement
|
||
|
||
initstr(0, 4 , '0', ALIGN_RIGHT) . // Facultatif DAPET Année de validité de l'activité principale de l'établissement
|
||
|
||
initstr($a['EffectifEtab'], 7 , '0', ALIGN_RIGHT) . // Facultatif EFF_ET Effectif de l'établissement
|
||
initstr($a['EffEtTr'], 2 ) . // Facultatif TEFF_ET Tranche d'effectif de l'établissement
|
||
initstr($a['AnneeEffEt'], 4 , '0', ALIGN_RIGHT) . // Facultatif DEFET Année de mise à jour de l'effectif établissement
|
||
|
||
initstr('', 1 ) . // Facultatif MODET Modalité de l'activité pricipale de l'établissement
|
||
|
||
initstr($a['EXPLET'], 1 ) . // Facultatif EXPLET Etablissement exploitant tout ou partie des moyens de production
|
||
initstr($b['insRPET'], 2 , '0', ALIGN_RIGHT) . // Facultatif RPET Région de localisation de l'établissement
|
||
|
||
initstr(str_replace('-','',0), 8 , '0', ALIGN_RIGHT) . // Facultatif DREACTET Date de réactivation de l'établissement
|
||
initstr(str_replace('-','',0), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEFERET Date de fermeture de l'établissement
|
||
|
||
initstr($b['insEAEANT'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANT Année de validité des rubriques de niveau Etab provenant des EAE*
|
||
initstr($b['insEAEAPET'], 5 ) . // Facultatif EAEAPET Activité principale de l'établissement issue des EAE
|
||
initstr($b['insEAESEC1T'], 5 ) . // Facultatif EAESEC1T Activité secondaire de l'établissement issue des EAE
|
||
initstr($b['insEAESEC2T'], 5 ) . // Facultatif EAESEC2T Autre activité secondaire de l'établissement issue des EAE
|
||
initstr(str_replace('-','',$a['DateCreaEn']), 8 , '0', ALIGN_RIGHT) . // Facultatif DCREN Date de création de l'entreprise
|
||
initstr($a['NafEnt'], 5 ) . // Obligatoire APE_ENT Code activité dans la NAF rév2 de l'entreprise
|
||
initstr($a['NaceEnt'], 5 ) . // Facultatif NACE_ENT Code activité NACE de l'entreprise
|
||
|
||
initstr(0, 4 , '0', ALIGN_RIGHT) . // Facultatif DAPEN Année de validité de l'activité 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
|
||
initstr($a['AnneeEffEn'], 4 , '0', ALIGN_RIGHT) . // Facultatif DEFEN Année de mise à jour de l'effectif entreprise
|
||
initstr($a['MODEN'], 1 ) . // Facultatif MODEN Modalité de l'activité pricipale de l'entreprise
|
||
initstr($a['EXPLEN'], 1 ) . // Facultatif EXPLEN Entreprise exploitant tout ou partie des moyens de production
|
||
initstr($b['insRPEN'], 2 , '0', ALIGN_RIGHT) . // Facultatif RPEN Région de localisation du siège de l'entreprise
|
||
|
||
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
|
||
initstr($a['FJ'], 4 , '0', ALIGN_RIGHT) . // Obligatoire CJ Catégorie Juridique de l'entreprise
|
||
initstr($a['Civilite'], 1 , '0', ALIGN_RIGHT) . // Facultatif CIVILITE Civilité de l'entreprise si Personne Physique
|
||
initstr($a['NbEtab'], 4 , '0', ALIGN_RIGHT) . // Facultatif NBETAB Nombre d'établissements actifs de l'entreprise
|
||
initstr($a['TrancheCA'], 1 , '0', ALIGN_RIGHT) . // Facultatif TCA Tranche de chiffre d'affaire
|
||
initstr($a['TrancheCAexp'], 1 , '0', ALIGN_RIGHT) . // Facultatif TCAEXP Tranche de chiffre d'affaire à l'export
|
||
initstr($a['APRM'], 6 ) . // Facultatif APRM Activité principale au registre des métiers
|
||
initstr($a['MONOREG'], 1 , '0', ALIGN_RIGHT) . // Facultatif MONOREG Mono-régionalité 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é de l'entreprise
|
||
initstr(substr($a['SiretSiege'],-5), 5 , '0', ALIGN_RIGHT) . // Facultatif NICSIEGE Nic de l'établissement siège
|
||
initstr($a['RECME'], 1 , '0', ALIGN_RIGHT) . // Facultatif RECME Répertoire des Entreprises Contrôlées Majoritairement par l'État
|
||
|
||
initstr(0, 14 , '0', ALIGN_RIGHT) . // Facultatif SIRETLIE Siret lié : prédécesseur, successeur, doublon, autre
|
||
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif SIRETLIETYPE Type de sitet lié
|
||
initstr($a['AutreSiret']['pre']['nic'], 5 , '0', ALIGN_RIGHT) . // Facultatif NICPREC Nic de l'établissement prédécesseur (dans le cadre d'un transfert)
|
||
initstr($a['AutreSiret']['suc']['nic'], 5 , '0', ALIGN_RIGHT) . // Facultatif NICSUIV Nic de l'établissement successeur (dans le cadre d'un transfert)
|
||
initstr('', 2 ) . // Facultatif insDESTINAT Destination Insee
|
||
initstr($b['insDEPCOMEN'], 5 , '0', ALIGN_RIGHT) . // Facultatif insDEPCOMEN Code commune Insee du siè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
|
||
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMAPET Indicateur de MAJ du NAF établissement
|
||
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMADRESSE Indicateur de MAJ de l'ADRESSE de l'é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
|
||
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLEN Indicateur de MAJ du caractère EXPLOITANT entrep
|
||
initstr(0, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLET Indicateur de MAJ du caractère EXPLOITANT étab
|
||
*/
|
||
'00000000000'.
|
||
initstr(1, 1 ) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP
|
||
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ément de nom
|
||
initstr($c['L3_ADRCOMP'], 38 ) . // Facultatif L3_CADR Ligne 3 : Complé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é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 étranger
|
||
initstr($b['insEAEANN'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANN Année de validité des rubriques de niveau ENTREP provenant des EAE*
|
||
initstr($b['insEAEAPEN'], 5 ) . // Facultatif EAEAPEN Activité principale de l'entreprise issue des EAE
|
||
initstr($b['insEAESEC1N'], 5 ) . // Facultatif inseaesec1n Activité secondaire n°1 de l'entreprise issue des EAE
|
||
initstr($b['insEAESEC2N'], 5 ) . // Facultatif inseaesec2n Activité secondaire n°2 de l'entreprise issue des EAE
|
||
initstr($b['insEAESEC3N'], 5 ) . // Facultatif inseaesec3n Activité secondaire n°3 de l'entreprise issue des EAE
|
||
initstr($b['insEAESEC4N'], 5 ) . // Facultatif inseaesec4n Activité secondaire n°4 de l'entreprise issue des EAE
|
||
initstr($a['GeoLat'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984)
|
||
initstr($a['GeoLon'], 12 , '0', ALIGN_RIGHT) . // Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984)
|
||
initstr($a['GeoPrecis'], 1 , '0', ALIGN_RIGHT) . // Facultatif GPSP Niveau de précision du géocodage
|
||
initstr($a['GeoInfos']['NZUS'], 10 ) . // Facultatif ZUS Identifiant de la Zone Urbaine Sensible
|
||
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
|
||
initstr($a['GeoInfos']['NCUCS'], 10 ) . // Facultatif CUCS Identifiant de la Zone Contrat Urbain de Cohé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
|
||
initstr($a['TvaNumero'], 15 ) . // Facultatif TVA Numéro de TVA Intracommunataire
|
||
initstr($a['TvaAttribue'], 1 , '0', ALIGN_RIGHT) . // Facultatif TVAVALIDE Numéro de TVA validé
|
||
initstr($a['AncienSiege'], 1 , '0', ALIGN_RIGHT) . // Facultatif ANCIENSIEGE Ancien siè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
|
||
initstr('', 30 ) . // Facultatif PPDIR1PRENOM Pré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
|
||
initstr('', 30 ) . // Facultatif PPDIR2PRENOM Pré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ère clôture de bilan disponible
|
||
initstr($a['bilanMois'], 2 , '0', ALIGN_RIGHT) . // Facultatif BILANDUREE Durée du dernier exercice disponible
|
||
initstr($a['bilanFL'], 15 , '0', ALIGN_RIGHT) . // Facultatif BILANCA Chiffre d'affaires au dernier bilan disponible
|
||
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';
|
||
$strIni=initstr(400, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité
|
||
initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Numéro unique d'identification interne d'un établissement S&D
|
||
initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise
|
||
initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'établissement
|
||
initstr($a['Source'], 3 , '0', ALIGN_RIGHT) . // Obligatoire SOURCE Source de la fiche d'identité
|
||
initstr($iInsee->valideSiren($siren,$nic), 1 , '0', ALIGN_RIGHT) . // Obligatoire SIRETVALIDE Siren/siret valide
|
||
initstr($a['numRC'], 10 ) . // Facultatif NUMRCS Numéro de Registre du Commerce et des Sociétés
|
||
initstr($a['Tribunal'], 6 ) . // Facultatif TRIBUNAL Identifiant du Tribunal
|
||
initstr(str_replace('-','',$p['DATE_FRAICHE_BILAN']), 8, '0', ALIGN_RIGHT) . // DATEMAJ Date de la dernière mise à jour du bilan dans la base S&D Format AAAAMMJJ
|
||
initstr(substr($p['DATE_FRAICHE_BILAN'],0,4), 4, '0', ALIGN_RIGHT) . // MILLESIME Année du bilan
|
||
initstr(str_replace('-','',$p['DATE_CLOTURE']), 8, '0', ALIGN_RIGHT) . // BILAN_DATE Date de clôture du bilan Format AAAAMMJJ
|
||
initstr($p['DUREE_MOIS'], 2, '0', ALIGN_RIGHT) . // BILAN_DUREE Durée de l'exercice en mois
|
||
initstr(str_replace('-','',$p['DATE_CLOTURE_PRE']), 8, '0', ALIGN_RIGHT) . // BILAN_DATEP Date de clôture du bilan précédent Format AAAAMMJJ
|
||
initstr($p['DUREE_MOIS_PRE'], 2, '0', ALIGN_RIGHT) . // BILAN_DUREEP Durée de l'exercice précédent en mois
|
||
initstr($numLiasse,4) . // BILAN_LIASSE Numéro de la première liasse du bilan 2033,2050
|
||
initstr($p['CONSOLIDE'], 1) . // BILAN_TYPE Type de bilan S=Réel Normal Simplifié, C=Consolidé, 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*
|
||
initstr($unite, 1); // BILAN_UNITE Unité du bilan livré U=en unité 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 '';
|
||
$strIni.=initstr(count($p), 4, '0', ALIGN_RIGHT); // BILAN_NBPOSTES Nombre de postes livré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) {
|
||
// Ecriture de la dernière ligne sauf s'il y a dejà 76 postes
|
||
$strRet.=initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL;
|
||
$nbLignes++;
|
||
}
|
||
return $strRet;
|
||
}
|
||
?>
|