552 lines
31 KiB
PHP
552 lines
31 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
/**
|
|
* @todo
|
|
* 1. Numéroter toutes les procédures OK
|
|
* 2. Pouvoir faire du multiligne avec : 100 Annonce Bodacc
|
|
* 101 Commentaire
|
|
* 102 Activite déclaré au Bodacc
|
|
* 103 texte rectificatif
|
|
* 104 Annonce complète au format texte
|
|
* 105 Structure Dirigeants BODACC
|
|
* 106 Libellé du Périmètre de la vente
|
|
* 3.
|
|
* 5. JugesCommissaires à intégrer correctement
|
|
|
|
Noms et prénoms des dirigeants de l'entreprise ' Anum. ?
|
|
|
|
Raison sociale du vendeur Anum. 255
|
|
Siren du vendeur (en cas de Vente/Cessions) Num. 9
|
|
Indicateur de correction du SIREN vendeur (si C, le siren diffusé au BODACC est faut mais S&D a affecté le bon SIREN) ' Car. 1
|
|
*/
|
|
include_once(FWK_PATH.'common/chiffres.php');
|
|
include_once(FWK_PATH.'common/dates.php');
|
|
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
|
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
|
|
|
$repProduction='/mnt/samba/partage/production/';
|
|
|
|
$incrementationDesTour=true;
|
|
|
|
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
|
Génère les fichiers de diffusion des des annonces BODACC.
|
|
|
|
Options :
|
|
-i Ne pas incrémenter les numéros de tour (pour les tests).
|
|
";
|
|
|
|
$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;
|
|
break;
|
|
case '-':
|
|
case '?':
|
|
die($strInfoScript);
|
|
break;
|
|
default:
|
|
die('Option '. $argv[$i] . " inconnue !\n");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$typePrestaton='diffusionBodacc';
|
|
$iDb=new WDB('jo');
|
|
$iDb2=new WDB('jo');
|
|
|
|
function genereMultiLigne($typeLigne, $enteteLigne, $chaine, $eol="\r\n", &$nbLignes=0) {
|
|
$lonLigne=LONGUEUR_LIGNE_SORTIE-90;
|
|
$str='';
|
|
switch ($typeLigne) {
|
|
case '102': // Activité déclarée au Bodacc
|
|
case '103': // Texte rectificatif
|
|
case '104': // Annonce Bodacc Complète
|
|
case '105': // Structure dirigeants
|
|
$tabLigne=str_split($chaine, $lonLigne);
|
|
foreach ($tabLigne as $i=>$ligne) {
|
|
$str.=rtrim($typeLigne.$enteteLigne.$ligne).$eol;
|
|
$nbLignes++;
|
|
}
|
|
break;
|
|
default:
|
|
die("ERREUR : Structure de sortie n°$typeLigne non prise en charge !\n");
|
|
break;
|
|
}
|
|
return $str;
|
|
}
|
|
function getListeAdherents($prestation) {
|
|
$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, 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 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['trtdatederniereexec_c'],
|
|
'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 **/
|
|
|
|
$tabAdherents=getListeAdherents($typePrestaton);
|
|
//print_r($tabAdherents);
|
|
$nbClients=count($tabAdherents);
|
|
echo date ('Y/m/d - H:i:s')." - Il y a $nbClients client(s) à servir en diffusion BODACC.".EOL;
|
|
//print_r($tabAdherents);die();
|
|
foreach ($tabAdherents as $i=>$tabAdherent) // On boucle sur les prestations
|
|
{
|
|
$clientNumTourFichier=($tabAdherent['numeroDeTour']*1)+1;
|
|
$clientIdentifiant=trim($tabAdherent['loginPrestation']);
|
|
$nomClient=trim($tabAdherent['nomClient']);
|
|
$numPrestation=$tabAdherent['id'];
|
|
/** Le client souhaite une compression du fichier ? **/
|
|
if (strpos($tabAdherent['optionSupport'], 'gzip')) $optionZip='gzip';
|
|
elseif (strpos($tabAdherent['optionSupport'], 'zip')) $optionZip='zip';
|
|
else $optionZip='none';
|
|
|
|
/** Le client préfère un paramétrage UNIX ou Window pour ses fins de lignes **/
|
|
if (strpos($tabAdherent['optionSupport'], 'os=dos')) $optionEOL="\r\n";
|
|
elseif (strpos($tabAdherent['optionSupport'], 'os=unix')) $optionEOL="\n";
|
|
else $optionEOL=EOL;
|
|
|
|
$tabOptOutput=array();
|
|
|
|
if($tabAdherent['dateDebut']<>'' && $tabAdherent['dateDebut']<>'0000-00-00')
|
|
$dateDebutPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateDebut']);
|
|
else
|
|
$dateDebutPrestation=false;
|
|
|
|
if($tabAdherent['dateFin']<>'' && $tabAdherent['dateFin']<>'0000-00-00')
|
|
$dateFinPrestation=WDate::dateT('Y-m-d', 'Ymd', $tabAdherent['dateFin']);
|
|
else
|
|
$dateFinPrestation=false;
|
|
|
|
if($tabAdherent['dateDerniereExec']<>'' && $tabAdherent['dateDerniereExec']<>'0000-00-00')
|
|
$dateDernierTraitement=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 && $dateFinPrestation>DATE) // 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 && $dateDernierTraitement==DATE)
|
|
{ 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
|
|
'';
|
|
fwrite($fp, $str.$optionEOL);
|
|
$nbLignes=1;
|
|
|
|
/**
|
|
** On génère les lignes de détail
|
|
**/
|
|
$strRubrique='';
|
|
if (strpos($tabAdherent['optionPrestation'], 'comptes')) // Export du Bodacc C - Dépôt des comptes
|
|
$strRubrique.="'comptes',";
|
|
if (strpos($tabAdherent['optionPrestation'], 'creations')) // Export des créations
|
|
$strRubrique.="'creations',";
|
|
if (strpos($tabAdherent['optionPrestation'], 'mmd')) // Export des MMD
|
|
$strRubrique.="'mmd',";
|
|
if (strpos($tabAdherent['optionPrestation'], 'procol')) // Export des ProCol
|
|
$strRubrique.="'procol',";
|
|
if (strpos($tabAdherent['optionPrestation'], 'radiations')) // Export des radiations
|
|
$strRubrique.="'radiations',";
|
|
if (strpos($tabAdherent['optionPrestation'], 'ventes')) // Export des ventes cessions
|
|
$strRubrique.="'ventes',";
|
|
|
|
if (strpos($tabAdherent['optionPrestation'], '101')) // Commentaire inclus dans l'annonce si nécessaire
|
|
$tabOptOutput[101]=true; else $tabOptOutput[101]=false;
|
|
if (strpos($tabAdherent['optionPrestation'], '102')) // Activite déclaré au Bodacc
|
|
$tabOptOutput[102]=true; else $tabOptOutput[102]=false;
|
|
if (strpos($tabAdherent['optionPrestation'], '104')) // Annonce complète au format texte
|
|
$tabOptOutput[104]=true; else $tabOptOutput[104]=false;
|
|
if (strpos($tabAdherent['optionPrestation'], '105')) // Structure Dirigeants BODACC
|
|
$tabOptOutput[105]=true; else $tabOptOutput[105]=false;
|
|
|
|
$tabSiren=$iDb->select('mederic', 'distinct(siren)', '1', true, MYSQL_ASSOC);
|
|
$nbSirenClient=count($tabSiren);
|
|
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbSirenClient siren en surveillance.".EOL;
|
|
$tabSiren2=array();
|
|
foreach ($tabSiren as $siren) {
|
|
$tabSiren2[]=$siren['siren'];
|
|
}
|
|
sort($tabSiren2);
|
|
$tabSiren=$tabSiren2;
|
|
unset($tabSiren2);
|
|
//die();
|
|
|
|
$fields='id, d.siren, sirenValide, Bodacc_Num, Bodacc_Date_Parution, Num_Annonce, Rubrique_Bodacc, Rubrique, typeAnnonce, corrNum_Annonce, corrBodacc_Date_Parution, corrPage, corrNumParution, corrTexteRectificatif, RC, raisonSociale, nomCommercial, enseigne, nationalite, FJ, Capital, CapitalDev, adresse, adrNum, adrIndRep, adrTypVoie, adrLibVoie, adrComp1, adrComp2, codePostal, ville, adresseSiege, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, administration, activite, typeEven, commentaires, dateEffet, publication, publicationNom, publicationDate, fusion, dateDebutActivite, dateCessationActivite, dateCessationPaiement, dateJugement, Numero, VenteMt, VenteDev, bienAcqui, Mandataire, mandNom, mandRepr, mandAdresse, mandCP, mandVille, JugeCommissaire, jugeCommissaireSuppleant, ReprCreanciers, creaNom, creaRepr, creaAdresse, creaCP, creaVille, administrateur, admNom, admRepr, admAdresse, admCP, admVille, oppositions, oppoNom, oppoRepr, oppoAdresse, oppoCP, oppoVille, perimetre, dateFinDepotCreances, delaiDepotCreances, dateFinObservation, FinObservationBodacc, d.dateInsert';
|
|
$where='1';
|
|
// On filtre les rubriques demandées
|
|
if ($strRubrique<>'') $where.=' AND Rubrique IN('. substr($strRubrique,0,strlen($strRubrique)-1) .') ';
|
|
// On ne prend que les dernières annonces depuis la dernière exécution de la prestation pour le client
|
|
/**
|
|
if ($dateDernierTraitement) $where.=" AND dateInsert>'$dateDernierTraitement' ";
|
|
// ... sinon on prend les annonces depuis la date de début de la prestation
|
|
elseif ($dateDebutPrestation) $where.=" AND dateInsert>'$dateDebutPrestation' ";
|
|
else $where.=" AND dateInsert>='MAX(DATE_FORMAT(dateInsert,'%Y-%m-%d'))') ";
|
|
**/
|
|
$where.=" AND d.siren=s.siren AND Bodacc_Date_Parution BETWEEN 20060901 AND 20070930 ";
|
|
|
|
//echo date ('Y/m/d - H:i:s')." - SQL : ... WHERE $where;".EOL;
|
|
//$tabAnnonces
|
|
$nbAnnonces=$iDb->select('bodacc_detail d, mederic s', $fields, $where, true, MYSQL_ASSOC, true); // Gérer la table surveillance
|
|
|
|
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : $nbAnnonces annonces à traiter...".EOL;
|
|
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Début de génération du fichier client...".EOL;
|
|
|
|
//while(=$iDb->fetch(MYSQL_ASSOC)) {
|
|
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
|
|
//print_r($annonce);
|
|
//$k++;
|
|
//$siren=$record['siren'];***/
|
|
|
|
//foreach ($tabAnnonces as $numAnn=>$annonce) {
|
|
// On récupère les 2 intervenants de la procédure
|
|
//if (!in_array($annonce['siren'], $tabSiren)) continue;
|
|
|
|
$numInter=0;
|
|
$inter=array();
|
|
if ($annonce['mandNom']<>'' || $annonce['mandCP']<>0) {
|
|
$inter[$numInter]['type']='M'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
|
$inter[$numInter]['SIRET']=0;
|
|
$inter[$numInter]['Nom']=$annonce['mandNom'];
|
|
$inter[$numInter]['Repr']=$annonce['mandRepr'];
|
|
$inter[$numInter]['adrNum']='';
|
|
$inter[$numInter]['adrBis']='';
|
|
$inter[$numInter]['adrType']='';
|
|
$inter[$numInter]['adrLib']=$annonce['mandAdresse'];
|
|
$inter[$numInter]['CP']=$annonce['mandCP'];
|
|
$inter[$numInter]['Ville']=$annonce['mandVille'];
|
|
$inter[$numInter]['Tel']='';
|
|
$numInter++;
|
|
}
|
|
if ($annonce['creaNom']<>'' || $annonce['creaCP']<>0) {
|
|
$inter[$numInter]['type']='R'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
|
$inter[$numInter]['SIRET']=0;
|
|
$inter[$numInter]['Nom']=$annonce['creaNom'];
|
|
$inter[$numInter]['Repr']=$annonce['creaRepr'];
|
|
$inter[$numInter]['adrNum']='';
|
|
$inter[$numInter]['adrBis']='';
|
|
$inter[$numInter]['adrType']='';
|
|
$inter[$numInter]['adrLib']=$annonce['creaAdresse'];
|
|
$inter[$numInter]['CP']=$annonce['creaCP'];
|
|
$inter[$numInter]['Ville']=$annonce['creaVille'];
|
|
$inter[$numInter]['Tel']='';
|
|
$numInter++;
|
|
}
|
|
if ($annonce['admNom']<>'' || $annonce['admCP']<>0) {
|
|
$inter[$numInter]['type']='A'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
|
$inter[$numInter]['SIRET']=0;
|
|
$inter[$numInter]['Nom']=$annonce['admNom'];
|
|
$inter[$numInter]['Repr']=$annonce['admRepr'];
|
|
$inter[$numInter]['adrNum']='';
|
|
$inter[$numInter]['adrBis']='';
|
|
$inter[$numInter]['adrType']='';
|
|
$inter[$numInter]['adrLib']=$annonce['admAdresse'];
|
|
$inter[$numInter]['CP']=$annonce['admCP'];
|
|
$inter[$numInter]['Ville']=$annonce['admVille'];
|
|
$inter[$numInter]['Tel']='';
|
|
$numInter++;
|
|
}
|
|
/* if ($annonce['oppoNom']<>'' || $annonce['oppoCP']<>0) {
|
|
$inter[$numInter]['type']='O'; // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
|
$inter[$numInter]['SIRET']=0;
|
|
$inter[$numInter]['Nom']=$annonce['oppoNom'];
|
|
$inter[$numInter]['Repr']=$annonce['oppoRepr'];
|
|
$inter[$numInter]['adrNum']='';
|
|
$inter[$numInter]['adrBis']='';
|
|
$inter[$numInter]['adrType']='';
|
|
$inter[$numInter]['adrLib']=$annonce['oppoAdresse'];
|
|
$inter[$numInter]['CP']=$annonce['oppoCP'];
|
|
$inter[$numInter]['Ville']=$annonce['oppoVille'];
|
|
$inter[$numInter]['Tel']='';
|
|
$numInter++;
|
|
}*/
|
|
$tribunalCode=$iDb2->select('bodacc', 'Tribunal_Code', 'id='.$annonce['id'], false);
|
|
$tribunalCode=$tribunalCode[0][0];
|
|
|
|
$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(FILLER, 1) . // On garde de la place
|
|
initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
|
|
initstr(FILLER, 5) . // On garde la place pour le NIC
|
|
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année
|
|
initstr(substr($annonce['Rubrique_Bodacc'],0,1), 1) . // Code Bodacc (A, B ou C)
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['Bodacc_Date_Parution']), 8) . // Date de parution du Bodacc
|
|
initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
|
|
initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc
|
|
initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
|
|
// R=Rectif, S=Suppression
|
|
initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce diff. de I, numéro de l'annonce corrigée
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
|
|
initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
|
|
initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parut°/année de annonce corrigée
|
|
// (ex: 230A, 001B)
|
|
// initstr($annonce['corrTexteRectificatif'], XXXXXX, '0', ALIGN_RIGHT) . // Si diff. I,
|
|
// initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert']), 8, '0') . // Date de l'intégration en bae S&D
|
|
initstr(FILLER, 18) . // REFERENCE DU CLIENT
|
|
initstr($tribunalCode, 6) .
|
|
initstr($annonce['RC'], 9) . // Numéro de RC (Registre du Commerce) de l'entreprise
|
|
initstr($annonce['raisonSociale'], 150) . // Raison sociale de l'entreprise
|
|
initstr($annonce['nomCommercial'], 100) . // Nom commercial de l'entreprise
|
|
initstr($annonce['enseigne'], 100) . // Enseigne de l'établissement
|
|
initstr($annonce['nationalite'], 30) . // Nationalité si Personne physique
|
|
//initstr(MInsee::getFJInsee($annonce['siren']), 4) . // FJ codification Insee
|
|
initstr('0000', 4) . // FJ codification Insee
|
|
initstr($annonce['FJ'], 90) . // Forme juridique de l'entreprise déclarée au BODACC
|
|
initstr($annonce['Capital'], 15, '0', ALIGN_RIGHT) . // Capital
|
|
initstr($annonce['CapitalDev'], 3) . // Devise du capital (format ISO)
|
|
// Adresse / 150 car
|
|
initstr($annonce['adrNum'], 4, '0', ALIGN_RIGHT) . //
|
|
initstr($annonce['adrIndRep'], 1) . //
|
|
initstr($annonce['adrTypVoie'], 5) .
|
|
initstr($annonce['adrLibVoie'], 50) .
|
|
initstr($annonce['adrComp1'], 50) .
|
|
initstr($annonce['adrComp2'], 40) .
|
|
initstr($annonce['codePostal'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
|
|
initstr($annonce['villeSiege'], 45) . // Ville de l'établissement
|
|
// Adresse du siège / 150 car
|
|
initstr($annonce['adrNumSiege'], 4, '0', ALIGN_RIGHT) . //
|
|
initstr($annonce['adrIndRepSiege'], 1) . //
|
|
initstr($annonce['adrTypVoieSiege'], 5) .
|
|
initstr($annonce['adrLibVoieSiege'], 50) .
|
|
initstr($annonce['adrComp1Siege'], 50) .
|
|
initstr($annonce['adrComp2Siege'], 40) .
|
|
initstr($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT) . // Code Postal de l'établissement
|
|
initstr($annonce['villeSiege'], 45) . // Ville de l'établissement
|
|
initstr(str_replace(';','', $annonce['typeEven']), 32, '0', ALIGN_RIGHT) . // Code Evènement Bodacc n°1 à 8
|
|
initstr($annonce['publicationNom'], 100) . // NOM du JAL si publication
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['publicationDate']), 8) . // Date de publication du JAL si publication
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateCessationPaiement']), 8) . // Date de cessation des paiements
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateJugement']), 8) . // Date du jugement
|
|
initstr(FILLER, 1) . // FILLER (Replace type de création)
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateDebutActivite']), 8) . // Date de début d'activité
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateEffet']), 8) . // Date d'effet (Ventes/MMD)
|
|
// ou Date clôture exercice si ann dépôt comptes
|
|
initstr($annonce['VenteMt'], 15, '0', ALIGN_RIGHT) . // Montant de la vente
|
|
initstr($annonce['VenteDev'], 3) . // Devise de la ventre
|
|
initstr($annonce['Numero'], 35) . // Numéro de l'affaire au greffe
|
|
initstr($inter[0]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
|
initstr($inter[0]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
|
|
initstr($inter[0]['Nom'], 80) . // Raison sociale
|
|
initstr($inter[0]['Repr'], 80) . // Représentant
|
|
initstr($inter[0]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
|
|
initstr($inter[0]['adrBis'], 1) . // Adresse, Bis/Ter
|
|
initstr($inter[0]['adrType'], 4) . // Adresse, type de voie
|
|
initstr($inter[0]['adrLib'], 32) . // Adresse, libellé de la voie
|
|
initstr($inter[0]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
|
|
initstr($inter[0]['Ville'], 45) . // Adresse, commune
|
|
initstr($inter[0]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
|
|
initstr($inter[1]['type'], 1) . // Type d'intervenant A : Mand/Adm/ReprCre/Oppo
|
|
initstr($inter[1]['SIRET'], 14, '0', ALIGN_RIGHT) . // Intervenant A : Siret
|
|
initstr($inter[1]['Nom'], 80) . // Raison sociale
|
|
initstr($inter[1]['Repr'], 80) . // Représentant
|
|
initstr($inter[1]['adrNum'], 4, '0', ALIGN_RIGHT) . // Adresse, numéro dans la voie
|
|
initstr($inter[1]['adrBis'], 1) . // Adresse, Bis/Ter
|
|
initstr($inter[1]['adrType'], 4) . // Adresse, type de voie
|
|
initstr($inter[1]['adrLib'], 32) . // Adresse, libellé de la voie
|
|
initstr($inter[1]['CP'], 5, '0', ALIGN_RIGHT) . // Adresse, code Postal
|
|
initstr($inter[1]['Ville'], 45) . // Adresse, commune
|
|
initstr($inter[1]['Tel'], 10, '0', ALIGN_RIGHT) . // Téléphone
|
|
initstr(FILLER/*$annonce['JugeCommissaireNom']*/, 30) . // NOM du JugeCommissaire
|
|
initstr(FILLER/*$annonce['JugeCommissairePrenom']*/, 30) . // Prénom du JugeCommissaire
|
|
initstr(FILLER/*$annonce['JugeCommissaireSupplNom']*/, 30) . // NOM du JugeCommissaire suppléant
|
|
initstr(FILLER/*$annonce['JugeCommissaireSupplPrenom']*/, 30) . // Prénom du JugeCommissaire suppléant
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinDepotCreances']), 8) . // Date limite pour le dépôt des créances
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['dateFinObservation']), 8) . // Date de fin de la période d'observation
|
|
initstr(FILLER, 89) .
|
|
'';
|
|
fwrite($fp, rtrim($str).$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(FILLER, 1) . // On garde de la place
|
|
initstr($annonce['siren'], 9, '0', ALIGN_RIGHT) . // Siren de l'entreprise concernée par l'annonce
|
|
initstr(FILLER, 5) . // On garde la place pour le NIC
|
|
initstr($annonce['Bodacc_Num'], 3, '0', ALIGN_RIGHT) . // Numéro de parution du Bodacc dans l'année
|
|
initstr(substr($annonce['Rubrique_Bodacc'],0,1), 1) . // Code Bodacc (A, B ou C)
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['Bodacc_Date_Parution']), 8) . // Date de parution du Bodacc
|
|
initstr($annonce['Num_Annonce'], 5, '0', ALIGN_RIGHT) . // Numéro de l'annonce dans le Bodacc
|
|
initstr(substr($annonce['Rubrique_Bodacc'],1,3), 3, '0') . // Rubrique dans le Bodacc
|
|
initstr($annonce['typeAnnonce'], 1) . // Type d'annonce Bodacc : I=Insertion, A=Additif,
|
|
// R=Rectificatif, S=Suppression
|
|
initstr($annonce['corrNum_Annonce'], 5, '0', ALIGN_RIGHT) . // Si annonce différent de I, numéro de l'annonce corrigée
|
|
initstr(WDate::dateT('Y-m-d','Ymd',$annonce['corrBodacc_Date_Parution']), 8) . // Si diff. I, date du Bodacc de l'annonce corrigée
|
|
initstr($annonce['corrPage'], 6, '0', ALIGN_RIGHT) . // Si diff. I, page du Bodacc de l'annonce corrigée
|
|
initstr($annonce['corrNumParution'], 4, '0', ALIGN_RIGHT) . // Si diff. I, Num parution dans l'année de annonce corri(ex: 230A, 001B)
|
|
initstr(FILLER, 18) . // REF CLI
|
|
'';
|
|
|
|
if ($tabOptOutput[101]==true && $annonce['commentaires']<>'') // Commentaires
|
|
fwrite($fp, genereMultiLigne('101', $enteteL, $annonce['commentaires'], $optionEOL, $nbLignes));
|
|
if ($tabOptOutput[102]==true && $annonce['activite']<>'') // Activité déclarée au Bodacc
|
|
fwrite($fp, genereMultiLigne('102', $enteteL, $annonce['activite'], $optionEOL, $nbLignes));
|
|
if ($annonce['corrTexteRectificatif']<>'') // Texte rectificatif
|
|
fwrite($fp, genereMultiLigne('103', $enteteL, $annonce['corrTexteRectificatif'], $optionEOL, $nbLignes));
|
|
if ($tabOptOutput[104]==true) { // Annonce Bodacc Complète
|
|
$annoncetxt=$iDb2->select('bodacc', 'annonce', 'id='.$annonce['id'], false);
|
|
$annoncetxt=$annoncetxt[0][0];
|
|
fwrite($fp, genereMultiLigne('104', $enteteL, $annoncetxt, $optionEOL, $nbLignes));
|
|
}
|
|
if ($tabOptOutput[105]==true) { // Liste des dirigeants
|
|
$annonceDir=$iDb2->select('bodacc_dirigeants', 'id, num, dateEffet, fonction, rs, nom, prenom, nomUsage', 'id='.$annonce['id'], true);
|
|
$strDir='';
|
|
foreach ($annonceDir as $k=>$dir) {
|
|
$strDir.=initstr(WDate::dateT('Y-m-d','Ymd',$dir['dateEffet']), 8, '0', ALIGN_RIGHT) . // Date de la prise de fonction
|
|
initstr($dir['fonction'], 4) . // Code Fonction S&D
|
|
initstr($dir['rs'], 80) . // Raison Sociale du dirigeant
|
|
initstr($dir['nom'], 50) . // NOM du dirigeant
|
|
initstr($dir['prenom'], 100) . // Prenom
|
|
initstr($dir['usage'], 50); // Nom d'usage
|
|
if ($k%6==0) $strDir.=initstr(' ', 28);
|
|
else $strDir.=initstr(' ', 26);
|
|
}
|
|
fwrite($fp, genereMultiLigne('105', $enteteL, $strDir, $optionEOL, $nbLignes));
|
|
}
|
|
if ($nbLignes%1000==1) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n";
|
|
}
|
|
|
|
/**
|
|
** On génère la ligne de fin de fichier
|
|
**/
|
|
$nbLignes++;
|
|
$str= initstr('999', 3, '0', ALIGN_RIGHT) . // Type de ligne
|
|
initstr(date('YmdHis'), 14) . // Date & Heure de fin génération du fichier
|
|
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
|
|
initstr($clientIdentifiant, 36) . // Identifiant Client
|
|
initstr($typePrestaton, 32) . // Type de prestation
|
|
initstr($nbLignes, 10, '0', ALIGN_RIGHT) . // Nombre de lignes Total du fichier
|
|
'';
|
|
fwrite($fp, $str); // 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']."'");
|
|
}
|
|
/*Gzip ou zip zt envoi par mail ou dépot sur le site FTP*/
|
|
switch ($optionZip) {
|
|
case 'zip':
|
|
$zip = new ZipArchive;
|
|
$res = $zip->open($repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.zip', 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');
|
|
$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 du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
|
|
}
|
|
break;
|
|
case 'gzip':
|
|
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
|
|
$gz = gzopen($repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.gz','w9');
|
|
if (!$gz) {
|
|
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression 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;
|
|
}
|
|
break;
|
|
default:
|
|
if (!copy(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', $repProduction. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'))
|
|
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
|
|
else
|
|
echo date ('Y/m/d - H:i:s')." - Le fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt a été créé...'.EOL;
|
|
break;
|
|
}
|
|
}
|
|
echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
|
|
die();
|
|
?>
|