batch/1.1/old/surveillanceIsin.php
2013-06-19 08:24:49 +00:00

620 lines
31 KiB
PHP

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
define('DATE_HEURE_SCRIPT', date('Ymd_His'));
/**
* @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');
include_once(FWK_PATH.'mail/sendMail.php');
$repProduction='/mnt/samba/partage/production/';
$modeTest=$envoiGroupe=$envoiGroupePre=false;
$ignoreDateDerExec=$retroActivite=$ignoreInfosRS=false;
$mailAnomalie=false;
$tableSurveillance='surveillances_site';
//$modeTest=true;
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Envoi des annonces de surveillance Bodacc par email (site et WS uniquement).
Options :
-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 et envoi des mails à lenaoury@gmail.com...)
-m Envoyer un mail si anomalie lors de l'exécution
-l Ne pas mettre à jour les informations des listes de surveillance (RS, CP, Ville)
-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':
//$envoiGroupe=true;
$modeTest=true;
$strEmailsTest='lenaoury@gmail.com;fzicaro@scores-decisions.com';
//$tableSurveillance='surveillances_site_old';
break;
case 'e':
$ignoreDateDerExec=true;
break;
case 'l':
$ignoreInfosRS=true;
break;
case 'r':
$retroActivite=substr($argv[$i],3,strlen($argv[$i])-3);
break;
case 'm':
$mailAnomalie=true;
break;
case '-':
case '?':
die($strInfoScript);
break;
default:
die('Option '. $argv[$i] . " inconnue !\n");
break;
}
}
}
}
$iDb=new WDB('jo');
$iBodacc=new MBodacc();
$iInsee=new MInsee();
$iDb2=new WDB('sdv1');
$iBourse=new MBourse();
$messageDebut="Bonjour,
Veuillez trouver ci-dessous la liste des modifications relatives à votre abonnement Scores & Décisions.
";
$nbUtilisateurs=$iDb2->select('utilisateurs u, clients c', 'u.id, u.idClient, LOWER(u.login) AS login, u.password, u.email, u.formatMail, u.lienExtranetMail, u.listeEven', "u.idClient=c.id AND u.actif=1 AND u.deleted=0 AND c.actif='Oui'", true, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbUtilisateurs utilisateurs habilités à recevoir des surveillances...".EOL;
$tabFormat=$tabLienEx=$tabLstEve=$tabHash=array();
while ($uti=$iDb2->fetch(MYSQL_ASSOC)) {
switch ($uti['formatMail']) {
case 'txt2': // MAIL au format texte, 1 mail par envoi
case 'csv': // MAIL au format CSV, 1 mail par envoi
case 'txt1': // MAIL au format texte, 1 mail par annonce (format par défaut)
case 'pdf1': // MAIL au format PDF, 1 mail par envoi
$tabFormat['_'.$uti['login']]=$uti['formatMail'];
break;
default:
$tabFormat['_'.$uti['login']]='txt1';
break;
}
$tabLienEx['_'.$uti['login']]=$uti['lienExtranetMail'];
$tabLstEve['_'.$uti['login']]=explode(';',trim($uti['listeEven']));
sort($tabLstEve['_'.$uti['login']]);
if (count($tabLstEve['_'.$uti['login']])==1 && $tabLstEve['_'.$uti['login']][0]=='')
$tabLstEve['_'.$uti['login']]=array();
$tabHash['_'.$uti['login']]=md5($uti['login'].'|'.$uti['password']);
}
//sort($tabFormat);
//print_r($tabFormat);die();
echo date ('Y/m/d - H:i:s')." - Début du traitement d'envoi des communiqués".EOL;
$nbNews=$iDb->select( 'presse.articles',
'companyIsin, companySiren, companyName, pressReleaseDate, pressReleaseTitle, pressReleaseText, pressReleaseHtml, pressReleaseAttachments, pressReleaseUrl',
"companyIsin<>'' AND pressReleaseDate>='2013-05-20'", false, MYSQL_ASSOC, true);
echo date ('Y/m/d - H:i:s')." - Il y a $nbNews communiqués à traiter...".EOL;
while ($news=$iDb->fetch(MYSQL_ASSOC)) {
$isin=$news['companyIsin'];
$siren=$news['companySiren']*1;
if ($siren<1000) $siren=@$iBourse->getCodeSiren($isin);
$nom=strtoupper($news['companyName']);
$dateHeure=$news['pressReleaseDate'];
$titre=strtr($news['pressReleaseTitle'],array('&#39;'=>"'","\'"=>"'"));
$titre2=strtoupper($news['pressReleaseTitle']);
$texte=strtr($news['pressReleaseText'],array('&#39;'=>"'","\'"=>"'"));
if ($texte=='') {
$texte=strtr(strip_tags($news['pressReleaseHtml']),array('&#39;'=>"'","\'"=>"'"));
$typeCom='HTML';
} else
$typeCom='TXT';
echo "$isin\t$siren\t$nom\t$dateHeure\t$titre ($typeCom)\t";
if (substr($isin,0,2)<>'FR' && $siren<1000) echo "HORS périmètre !";
elseif (preg_match('/annuel|rapport|r.f.rence|mise . disposition|communiqu|capital|OPA|OPV|fusion|acqui|rapprochement|achat|absorbe|fusionne|contr.le|offre|ach.te|met la main|vend|actionnaire|majoritaire|participation|prend les r.nes|vente/Uis',$titre)) {
$tabTmp=$iDb2->select( 'jo.liensRef r, jo.liensDoc d, sdv1.utilisateurs u',
'r.id, d.periDoc, d.docRef, d.dateDocRef, d.dateInsert, d.idInsert, u.nom, u.prenom, d.id AS idDoc, u.id AS idUti, LOWER(u.login) AS login, u.email',
"r.siren='$siren' AND r.id=d.idNum AND d.idType='Entreprise' AND (d.idInsert=u.id OR d.idUpdate=u.id) GROUP BY u.id /*LIMIT 0,1*/", false, MYSQL_ASSOC);
$nbUti=count($tabTmp);
if ($nbUti>0) echo "$nbUti utilisateurs à avertir";
else echo "Pas encore suivi";
foreach ($tabTmp as $iSuivi=>$infos) {
if ($infos['email']<>'') {
@sendMail('infoslegales@scores-decisions.com', trim($infos['email']).',ylenaour@scores-decisions.com', "Suivi du groupe $nom : $titre",
$message = "Bonjour ".$infos['prenom'].",
Voici ci-dessous un communiqué relatif au groupe $nom pour lequel vous faites le suivi des liens inter-entreprises.
TITRE: $titre2
GROUPE: $nom
ISIN: $isin
SIREN: $siren
DATE: $dateHeure".EOL.EOL.$texte);
}
}
} else echo "SANS INTERET !";
echo EOL;
}
die();
$fields='d.id, d.siren, LOWER(s.login) AS login, s.email, s.ref, s.dateAjout, s.dateDerEnvoi, 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, b.Tribunal_Dept, b.Tribunal_Code, d.RC, d.raisonSociale, codePostal, d.ville, codePostalSiege, villeSiege, activite, typeEven, dateEffet, dateDebutActivite, dateCessationActivite, dateCessationPaiement, dateJugement, d.dateInsert, b.annonce';
$where ="1 AND s.siren>1000 AND s.siren = d.siren AND d.dateInsert >= s.dateAjout AND (d.dateInsert>=s.dateDerEnvoi OR d.dateUpdate>=s.dateDerEnvoi) AND d.id=b.id AND s.dateSuppr='0000-00-00'";
//$where.=" AND d.dateInsert < '2009-03-19 00:00:00' ";
//501780845 312701725
$where.=' ORDER BY s.login ASC, s.email ASC';
$tables="bodacc_detail d, bodacc b, $tableSurveillance s";
//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);
// s.dateSuppr
$query ="
( /** Requete SQL pour la collecte **/
SELECT a.id, a.siren, LOWER(TRIM(s.login)) AS login, LOWER(TRIM(s.email)) AS email, s.ref, s.dateAjout, s.dateDerEnvoi, CONCAT(a.source,'-',a.parutionIdJal) as source, a.parutionNum 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,
0 as Tribunal_Dept, a.tribunal as Tribunal_Code, '' as RC, a.raisonSociale, a.codePostal, a.ville, a.codePostal as codePostalSiege, a.ville as villeSiege,
'' as activite, concat(a.typeEven,';',strEven) AS typeEven, a.dateEffetFinP*1 as dateEffet, 0 as dateDebutActivite, 0 as dateCessationActivite, a.dateCessationPaiement, a.dateJugement*1 AS dateJugement,
a.dateInsert, a.annonce, adresse, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, inter3type, inter3id, inter3nom, montant, actionsNb, complement, nouvActivite, nouvDir, nouvAdr, nouvFJ
FROM annonces a, surveillances_site s
WHERE s.source='annonces' AND s.siren>1000 AND s.siren = a.siren AND a.dateInsert>=s.dateAjout AND a.dateInsert>=s.dateDerEnvoi AND DATEDIFF(NOW(), dateJugement)<=60
AND a.dateSource>'2010-05-12 02:00:00' AND a.dateSuppr=0 AND s.dateSuppr=0
ORDER BY s.login ASC, s.email ASC
) UNION (
/** Requete SQL pour le Bodacc **/
SELECT d.id, d.siren, LOWER(TRIM(s.login)) AS login, LOWER(TRIM(s.email)) AS email, s.ref, s.dateAjout, s.dateDerEnvoi, 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, b.Tribunal_Dept, b.Tribunal_Code, d.RC, d.raisonSociale, codePostal, d.ville, codePostalSiege, villeSiege, activite, typeEven, dateEffet*1 AS dateEffet, dateDebutActivite*1 AS dateDebutActivite, dateCessationActivite*1 AS dateCessationActivite, dateCessationPaiement, dateJugement*1 AS dateJugement, d.dateInsert, b.annonce, '' as adresse, '' as inter1type, '' as inter1id, '' as inter1nom, '' as inter2type, '' as inter2id, '' as inter2nom, '' as inter3type, '' as inter3id, '' as inter3nom, '' as montant, '' as actionsNb, '' as complement, '' as nouvActivite, '' as nouvDir, '' as nouvAdr, '' as nouvFJ
FROM bodacc_detail d, bodacc b, surveillances_site s
WHERE s.source='annonces' AND s.siren>1000 AND s.siren = d.siren AND d.dateInsert>=s.dateAjout AND (d.dateInsert>=s.dateDerEnvoi OR d.dateUpdate>=s.dateDerEnvoi) AND d.id=b.id AND DATEDIFF(NOW(), d.Bodacc_Date_Parution)<=60
AND d.Bodacc_Date_Parution>'2010-05-11' AND s.dateSuppr=0
ORDER BY s.login ASC, s.email ASC
) ORDER BY login ASC, email ASC";
echo date ('Y/m/d - H:i:s')." - $query;".EOL;
$res=$iDb->query($query);
$nbAnnonces=mysql_num_rows($res);
echo date ('Y/m/d - H:i:s')." - Il y a $nbAnnonces surveillances à traiter...".EOL;
$messageRecap="Il y a $nbAnnonces annonces en surveillance à traiter.\r\n";
$emailPre=$loginPre=false;
$nbMailOk=$nbMailKo=$nbMailEven=$nbMailDelai=0;
$tabAdresseKo=array();
//die();
require_once('/var/www/html/tests/pdf/html2pdf.class.php');
while ($annonce=$iDb->fetch(MYSQL_ASSOC)) {
//print_r($annonce);
//die();
$fp2=fopen("/var/www/html/factures/pdf/surv_site_".date('Y-m-d').'.csv', 'a');
fwrite($fp2, implode("\"\t\"", $annonce));
fclose($fp2);
$email=$annonce['email'];
$loginLu=$annonce['login'];
if (!isset($tabFormat['_'.$loginLu])) {
echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id']. " non traitée pour cause de format indéfini pour $loginLu, $email (".$annonce['siren'].' - '.$annonce['raisonSociale'].")\n";
/** Avant de faire un continue, on initialise les variables précédentes obligatoires **/
/*$emailPre=$email;
$loginPre=$loginLu;
$envoiGroupePre=$envoiGroupe;
$conversionPdfPre=$conversionPdf;
$conversionCsvPre=$conversionCsv;*/
continue;
}
$conversionPdf=$conversionCsv=false;
if ($tabFormat['_'.$loginLu]=='txt2') $envoiGroupe=true;
elseif ($tabFormat['_'.$loginLu]=='csv') { $envoiGroupe=true; $conversionCsv=true; }
elseif ($tabFormat['_'.$loginLu]=='txt1') $envoiGroupe=false;
elseif ($tabFormat['_'.$loginLu]=='pdf1') { $envoiGroupe=true; $conversionPdf=true; }
else die(date('Y/m/d H:i:s')." - Erreur impossible : Format '".$tabFormat['_'.$loginLu]."' non géré pour $loginLu !");
echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id']. " à traiter pour $loginLu, $email (".$annonce['siren'].' - '.$annonce['raisonSociale'].")\n";
if (count($tabLstEve['_'.$loginLu])>0) { // L'utilisateur filtre ses évènements
/*if ($loginLu=='ylenaour') {
print_r($tabLstEve['_'.$loginLu]);
die();
}*/
$tabEven=explode(';',$annonce['typeEven']);
$tabEven=array_unique($tabEven);
$evenTrouve=false;
foreach ($tabEven as $even) {
if (in_array($even, $tabLstEve['_'.$loginLu]))
$evenTrouve=true;
}
if (!$evenTrouve) {
echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id'].' - Evènements hors périmètre client : '.implode(';',$tabEven)."\n";
$nbMailEven++;
if (!$modeTest) {
$where="login='$loginLu' /*AND email='$emailPre'*/ AND source='annonces' AND siren='".$annonce['siren']."'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('Ymd').'235959'), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$loginLu, mail=$email, siren=".$annonce['siren'].', rsoc='.$annonce['raisonSociale']." ($where) !\n";
}
/** Avant de faire un continue, on initialise les variables précédentes obligatoires **/
/*$emailPre=$email;
$loginPre=$loginLu;
$envoiGroupePre=$envoiGroupe;
$conversionPdfPre=$conversionPdf;
$conversionCsvPre=$conversionCsv;*/
continue; // Aucun evènement souhaité par l'utilisateur n'est présent dans cette annonce
} else echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id']." - Evenements OK pour $loginLu, $email (".$annonce['siren'].' - '.$annonce['raisonSociale'].")\n";
} else echo date('Y/m/d H:i:s').' - Annonce n°'.$annonce['id']." - Pas de filtre evenements pour $loginLu, $email (".$annonce['siren'].' - '.$annonce['raisonSociale'].")\n";
echo "Test $envoiGroupe vs $envoiGroupePre / Login $loginLu vs $loginPre / Email $email vs $emailPre\n";
if (WDate::dateT('Y-m-d','Ymd',$annonce['dateInsert'])*1<=date('Ymd', mktime(0, 0, 0, date("m") , date("d")-5, date("Y")))*1
&& $mailAnomalie) {
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales ATTENTION", 'Annonce n°'.$annonce['id']." - Annonce ".$annonce['source']." entrée en base il y a plus de 5 jours pour $loginLu, $email (".$annonce['siren'].' - '.$annonce['raisonSociale'].")");
$nbMailDelai++;
}
//$saisie = trim(strtoupper(fgets(STDIN)));
if ( ($envoiGroupe||$envoiGroupePre) && // Envoi groupé demandé ET
( ($loginPre!=false && $loginLu!=$loginPre) || // Login différent OU
($emailPre!=false && $email!=$emailPre) ) // Email différent
) { /** Login souhaitant un seul email pour toutes les annonces **/
$emailEnvoi=$emailPre;
if ($modeTest) $emailEnvoi=$strEmailsTest;
if ($conversionPdfPre) {
$html2pdf = new HTML2PDF('P','A4', 'fr');
$messagePdf='<page>'.str_replace("---------------------------------------------------------------------------","</page>\n<page>", strtr($message, array("\r\n"=>'<br/>','< '=>'',' >'=>''))).'</page>';
$messagePdf=strtr($messagePdf, array('<<'=>'', '>>'=>''));
$messagePdf=str_replace('<page><br/><br/></page>','', $messagePdf);
$fichierTxt="/var/www/html/factures/pdf/annonces_$loginPre".'_'.date('Y-m-d').".txt";
echo date('Y/m/d H:i:s')." - Fichier debug : '$fichierTxt'".EOL;
$fp=fopen($fichierTxt, 'w');
fwrite($fp, $messagePdf);
fclose($fp);
$html2pdf->WriteHTML($messagePdf);
$content=$html2pdf->Output('annonces.pdf', true);
$fichierPdf="/var/www/html/factures/pdf/annonces_$loginPre".'_'.date('Y-m-d').".pdf";
$fp=fopen($fichierPdf, 'w');
fwrite($fp, $content);
fclose($fp);
$tabAttached=array($fichierPdf);
} elseif ($conversionCsvPre) {
$tabAttached=array($fichierCsvPre);
} else
$tabAttached=array();
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance Annonces Legales", $message, '', $tabAttached)) {
$nbMailOk++;
if (!$modeTest/* || ($arretDemande && $loginPre<>'dgfipifu8')*/) {
if ($envoiGroupePre)
$where="login='$loginPre' /*AND email='$emailPre'*/ AND source='annonces' AND siren IN (".implode(',',$tabSiren).")";
else
$where="login='$loginPre' /*AND email='$emailPre'*/ AND source='annonces' AND siren='$siren'";
/*if ($arretDemande)
die($where);*/
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$loginPre, mail=$emailPre, siren=$siren,".implode(',',$tabSiren).', rsoc='.$annonce['raisonSociale']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn a été envoyé à $emailPre (loginpre=$loginPre).";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn ont été envoyées à $emailPre.\n";
} else {
$nbMailKo++;
$tabAdresseKo[]=$emailEnvoi;
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $emailPre (loginpre=$loginPre) !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales - Echec Envoi !", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn n'ont pas été envoyées à $emailPre.\n";
}
// Remise à blanc du message
$message=$messageDebut;
$strIdAnn='';
$tabSiren=array();
}
// GESTION DE L'ANNONCE COURANTE
$siren=$annonce['siren'];
$sirenAff=implode(' ', str_split($siren,3));
$rs=substr($annonce['raisonSociale'],0,30).'...';
$tabEven=explode(';',$annonce['typeEven']);
//$login=$annonce['login'];
$idAnn=$annonce['id'];
if ($envoiGroupe==false)
$message=$messageDebut;
else {
if ($emailPre==false && $loginPre==false) {
// Première annonce du mail
$message=$messageDebut;
$message.="Siren : $sirenAff\r\n".'Raison Sociale : '.$annonce['raisonSociale']."\r\n";
$strIdAnn="$idAnn ";
$tabSiren=array($siren);
} else {
// Nième annonce du mail
$message.= "Siren : $sirenAff\r\n".'Raison Sociale : '.$annonce['raisonSociale']."\r\n";
$strIdAnn.="$idAnn ";
$tabSiren[]=$siren;
}
}
if (trim($annonce['ref'])<>'') {
$message.='Votre référence : '.trim($annonce['ref'])."\r\n";
$message."\r\n";
$rs=substr($annonce['raisonSociale'],0,30).'... ('.trim($annonce['ref']).')';
}
$collecte=false;/*if ($source[0] == 'B'){
if ($ann['BodaccNum']==0)
print '<img src="./img/logo_jo.png"/>&nbsp;&nbsp;Source BODACC '.substr($ann['BodaccCode'],-1).' du '.WDate::dateT('Y-m-d','d/m/Y',$ann['DateParution']);
else
print '<img src="./img/logo_jo.png"/>&nbsp;&nbsp;&nbsp;Source BODACC n&deg;'.$ann['BodaccNum'].'&nbsp;'.substr($ann['BodaccCode'],-1).' du '.WDate::dateT('Y-m-d','d/m/Y',$ann['DateParution']).'. D&eacute;partement n&deg;'.$ann['Departement'].'. <a href="/?page=competences&siret='.$siret.'&type=tri">'.$ann['Tribunal'].'</a>';
}elseif ($source[0] == 'G' || $source[0] == 'T'){
print '<img src="./img/logo_greffe.png"/>&nbsp;&nbsp;Source Greffe du Tribunal';
}elseif ($source[0] == 'P'){
print '<img src="./img/logo_inpi.png"/>&nbsp;&nbsp;Source Registre National du Commerce';
}else{
print '<img src="./img/logo_jal.png"/>&nbsp;&nbsp;Source Journal Annonces L&eacute;gales';
}*/
if (substr($annonce['source'],0,1)=='B') {
$message.='Source : BODACC n°'.$annonce['Bodacc_Num'].' '.substr($annonce['Rubrique_Bodacc'],0,1).' du '.WDate::dateT('Y-m-d','d/m/Y',$annonce['Bodacc_Date_Parution']).'. ';
} elseif (substr($annonce['source'],0,1)=='G') {
$message.='Source : Greffe du '.$iBodacc->getTribunalNom($annonce['Tribunal_Code']).' au '.WDate::dateT('Y-m-d','d/m/Y',$annonce['Bodacc_Date_Parution']).'. ';
$collecte=true;
} elseif (substr($annonce['source'],0,1)=='P') {
$message.='Source : Registre National du Commerce et des Sociétés au '.WDate::dateT('Y-m-d','d/m/Y',$annonce['Bodacc_Date_Parution']).'. ';
$collecte=true;
} else {
$message.='Source : Collecte Scores & Décisions en date du '.WDate::dateT('Y-m-d','d/m/Y',$annonce['Bodacc_Date_Parution']).'. ';
$collecte=true;
}
if ($collecte && trim($annonce['annonce'])=='') {
$tabCollecte=$iInsee->getProColPart($siren);
foreach ($tabCollecte as $annCollecte) {
$idAnn2=('0.'.$idAnn)*1.0;
if ($annCollecte['id']==$idAnn2) {
//die(print_r($collecte));
$annonce['annonce']=str_replace(' RCS Tribunal inconnu.',' RCS.', $annCollecte['texteAnnonce']);
//print_r($collecte);
//die(print_r($annonce));
break;
}
}
}
$message.='Entrée en base S&D : '. WDate::dateT('Y-m-d','d/m/Y',$annonce['dateInsert'])."\r\n";
if ($annonce['Tribunal_Dept']>0) $message.='Département n°'.$annonce['Tribunal_Dept'].'. ';
if ($annonce['Tribunal_Code']<>'INCONU' &&
substr($annonce['source'],0,2)<>'GC') $message.=$iBodacc->getTribunalNom($annonce['Tribunal_Code']).'. ';
$message.='Entrée en base S&D : '. WDate::dateT('Y-m-d','d/m/Y',$annonce['dateInsert'])."\r\n";
$message."\r\n";
foreach ($tabEven as $even)
$message.=strtoupper($iBodacc->getEvenement($even))."\r\n";
$message.="\r\n";
$message.=$annonce['annonce']."\r\n";
if ($tabLienEx["_$loginLu"]==1) {
if ($collecte) $numAnn=$idAnn2; else $numAnn=$idAnn;
if (WS_VERSION==2)
$url="http://extranet.scores-decisions.com/juridique/annonces/siret/$siren/idAnn/$numAnn/vue/bodacc";
else
$url="http://extranet.scores-decisions.com/?page=annonces&action=logon&login=$loginLu&siret=$siren&idan=$numAnn&vue=abod&hach=".$tabHash["_$loginLu"];
$message.="\r\nCliquez sur le lien suivant pour une consultation directe de l'annonce sur le site de Scores & Décisions :\r\n<div style=\"font-size: 6pt\"><a href=\"$url\">$url</a></div>\r\n";//d6c3f28eda29a2072b36872476a1d37a
}
$message.="\r\n\r\n---------------------------------------------------------------------------\r\n\r\n";
if ($conversionCsv) {
$mel=substr(md5(preg_replace('/[^a-z0-9]/i','',$annonce['email'])),0,8);
$fichierCsv='/var/www/html/factures/pdf/annonces_'.$loginLu.'_'.$mel.'_'.DATE_HEURE_SCRIPT.'.csv';
if (!file_exists($fichierCsv)) {
$fp=fopen($fichierCsv, 'a');
fwrite($fp, "Siren;Id Annonce;Référence;Parution;Bodacc;Date parution;Numéro Annonce;Type Annonce;Tribunal;Numéro RCS;Raison sociale;Chapitre;Evènement(s);Date évènement;Texte Annonce\r\n");
fclose($fp);
}
$fp=fopen($fichierCsv, 'a');
$cor=$txtEven='';
// Annonce corrective
if ($annonce['typeAnnonce']<>'Insertion')
$cor=' - Annonce n°'.$annonce['corrNum_Annonce'].' '.$annonce['corrNumParution'].', page '.
$annonce['corrPage'].', du '.WDate::dateT('Ymd','d/M/Y',$annonce['corrBodacc_Date_Parution']);
switch($annonce['typeAnnonce']) {
case 'Insertion': $cor='Insertion'.$cor; break;
case 'Additif': $cor='Additif'.$cor; break;
case 'Rectificatif': $cor='Rectificatif'.$cor; break;
case 'Suppression': $cor='Suppression'.$cor; break;
default: break;
}
// Libellé tribunal
$libTri=$iBodacc->getTribunalNom($annonce['Tribunal_Code']);
// Liste des évènements
$even=explode(';',$annonce['typeEven']);
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);
// Date de jugement ou d'effet
$dateEve1=$annonce['dateJugement'];
$dateEve2=$annonce['dateCessationActivite'];
$dateEve3=$annonce['dateEffet'];
$dateEve4=$annonce['dateDebutActivite'];
if ($dateEve1>0) $dateEve=WDate::dateT('Ymd','d/m/Y',$dateEve1);
elseif ($dateEve2>0) $dateEve=WDate::dateT('Ymd','d/m/Y',$dateEve2);
elseif ($dateEve3>0) $dateEve=WDate::dateT('Ymd','d/m/Y',$dateEve3);
elseif ($dateEve4>0) $dateEve=WDate::dateT('Ymd','d/m/Y',$dateEve4);
else $dateEve='';
// Ecriture de la ligne CSV
fwrite($fp, "$siren;$idAnn;".trim($annonce['ref']).';'.$annonce['Bodacc_Num'].';'.substr($annonce['Rubrique_Bodacc'],0,1).';'.
WDate::dateT('Y-m-d','d/m/Y',$annonce['Bodacc_Date_Parution']).';'.$annonce['Num_Annonce'].";$cor;$libTri;".$annonce['Num_Annonce'].';'.
$annonce['raisonSociale'].';'.$annonce['Rubrique'].";$txtEven;$dateEve;".preg_replace('/ +/',' ', strtr($annonce['annonce'],array("\r"=>'', "\n"=>'', ";"=>' ', ","=>' ', '"'=>"'")))."\r\n");
fclose($fp);
}
if ($envoiGroupe==false) {
/** Profil souhaitant un email par annonce **/
$emailEnvoi=$email;
if ($modeTest) $emailEnvoi=$strEmailsTest;
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance $sirenAff : $rs", $message)) {
$nbMailOk++;
if (!$modeTest) {
if ($envoiGroupe) $where="login='$loginLu' AND email='$emailPre' AND source='annonces' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$loginLu' AND email='$email' AND source='annonces' AND siren='$siren'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$loginLu, mail=$emailPre/$email, siren=$siren,".implode(',',$tabSiren).', rsoc='.$annonce['raisonSociale']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn a été envoyé à $email (login=$login).";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance $sirenAff : $rs", $messageInfo);
echo date('Y/m/d H:i:s')." - L'annonce $idAnn a été envoyé à $email.\n";
} else {
$nbMailKo++;
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $email (login=$login) !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance $sirenAff : $rs - Echec Envoi !", $messageInfo);
echo date('Y/m/d H:i:s')." - L'annonce n°$idAnn n'a pas été envoyé à $email.\n";
}
}
$emailPre=$email;
$loginPre=$loginLu;
$envoiGroupePre=$envoiGroupe;
$conversionPdfPre=$conversionPdf;
$conversionCsvPre=$conversionCsv;
$fichierCsvPre=$fichierCsv;
}
/** Envoi du dernier email pour les envois groupés **/
if (($envoiGroupe||$envoiGroupePre) && $emailPre<>false && $loginPre<>false) {
$emailEnvoi=$emailPre;
if ($modeTest) $emailEnvoi=$strEmailsTest;
if ($conversionPdf) {
$html2pdf = new HTML2PDF('P','A4', 'fr');
$messagePdf='<page>'.str_replace("---------------------------------------------------------------------------",'</page><page>', strtr($message, array("\r\n"=>'<br/>','< '=>'',' >'=>''))).'</page>';
$messagePdf=strtr($messagePdf, array('<<'=>'', '>>'=>''));
$messagePdf=str_replace('<page><br/><br/></page>','', $messagePdf);
@$html2pdf->WriteHTML($messagePdf);
$content=@$html2pdf->Output('annonces.pdf', true);
$fichierPdf="/var/www/html/factures/pdf/annonces_$loginLu".'_'.date('Y-m-d').".pdf";
$fp=fopen($fichierPdf, 'w');
fwrite($fp, $content);
fclose($fp);
$tabAttached=array($fichierPdf);
} elseif ($conversionCsv) {
$tabAttached=array($fichierCsv);
} else $tabAttached=array();
if(@sendMail('infoslegales@scores-decisions.com', $emailEnvoi, "Surveillance Annonces Legales", $message, '', $tabAttached)) {
$nbMailOk++;
if (!$modeTest) {
if ($envoiGroupe) $where="login='$loginLu' /*AND email='$emailPre'*/ AND source='annonces' AND siren IN (".implode(',',$tabSiren).")";
else $where="login='$loginLu' /*AND email='$emailPre'*/ AND source='annonces' AND siren='$siren'";
if (!$iDb->update($tableSurveillance, array('dateDerEnvoi'=>date('YmdHis')), $where, true))
echo date('Y/m/d H:i:s')." - Erreur SQL ".mysql_errno().' : '.mysql_error().' sur UPDATE pour l\'annonce n°'.$annonce['id']. ", login=$loginLu, mail=$emailPre, siren=$siren,".implode(',',$tabSiren).', rsoc='.$annonce['raisonSociale']." ($where) !\n";
}
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Les annonces $strIdAnn ont été envoyées à $emailPre (loginpre=$loginPre).";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les annonces $strIdAnn ont été envoyées à $emailPre.\n";
} else {
$nbMailKo++;
$messageInfo=$message."\r\n".date('Y/m/d H:i:s')." - Les annonces $strIdAnn n'ont pas été envoyés à $emailPre (loginpre=$loginPre) !!!";
@sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales - Echec Envoi !", $messageInfo, '', $tabAttached);
echo date('Y/m/d H:i:s')." - Les annonces n°$strIdAnn n'ont pas été envoyées à $emailPre.\n";
}
}
$messageRecap.="$nbMailEven annonce(s) ignorée(s) car hors périmètre.\r\n";
$messageRecap.="$nbMailOk mail(s) envoyé(s) avec succès et $nbMailKo mail(s) en erreur";
$tabAdresseKo=array_unique($tabAdresseKo);
if (count($tabAdresseKo)>0)
$messageRecap.=" dont : \r\n - ".implode("\r\n - ",$tabAdresseKo);
if ($nbMailDelai>0)
$messageRecap.="Attention : $nbMailDelai annonce(s) envoyée(s) avec + de 5 jours de retards.\r\n";
@sendMail('production@scores-decisions.com', 'support@scores-decisions.com', "Traitement des surveillances Annonces Legales", $messageRecap);
echo date ('Y/m/d - H:i:s')." - Fin du traitement d'envoi des surveillances BODACC.\n";
if (!$ignoreInfosRS) {
echo date ('Y/m/d - H:i:s')." - Mises à jour des Raisons Sociales, CP & Villes pour l'affichage des surveillances...".EOL;
/** Mise à jour des Raisons Sociales, CP & Villes pour les surveillances **/
$query ="UPDATE surveillances_site, etablissements_act
SET surveillances_site.rs=etablissements_act.raisonSociale,
surveillances_site.cp=etablissements_act.adr_cp,
surveillances_site.ville=etablissements_act.adr_ville
WHERE surveillances_site.rs='' AND surveillances_site.nic>0 AND surveillances_site.siren=etablissements_act.siren AND surveillances_site.nic=etablissements_act.nic";
echo date ('Y/m/d - H:i:s')." - $query;".EOL;
$res=$iDb->query($query);
/**/
$tabTmp=$iDb->select('surveillances_site', 'source, login, siren, nic, ref, dateAjout, rs, cp, ville, dateDerEnvoi', "dateSuppr=0 AND siren>0 AND rs='' /*AND login IN (
'ricard0',
'ricard1')
*/
GROUP BY siren, nic ORDER BY login", false, MYSQL_ASSOC);
$nbTmp=count($tabTmp);
echo date ('Y/m/d - H:i:s')." - Il y a $nbTmp surveillances SIREN à mettre à jour...".EOL;
foreach ($tabTmp as $i=>$tabSurv) {
$tabIdentite=$iInsee->getIdentiteLight($tabSurv['siren'], $tabSurv['nic']);
$rs=$tabIdentite['Nom'];
$cp=$tabIdentite['CP'];
$ville=$tabIdentite['Ville'];
$iDb->update('surveillances_site',array('rs' => $rs,
'cp' => $cp,
'ville' => $ville),
"dateSuppr=0 AND siren=".$tabSurv['siren']." AND nic=".$tabSurv['nic'], false);
echo date ('Y/m/d - H:i:s')." - $i/$nbTmp: ".$tabSurv['login'].' '.$tabSurv['siren'].' '.$tabSurv['nic']." : $rs, $cp, $ville".EOL;
//usleep(100);
}
echo date ('Y/m/d - H:i:s')." - $i/$nbTmp surveillances SIREN mises à jour.".EOL;
die();
}
die();
?>