717 lines
34 KiB
PHP
717 lines
34 KiB
PHP
<?php
|
|
/**
|
|
* crontab
|
|
* 0 22 * * * /home/scores/batch/scripts/rapportsTextes.php -d >> /home/scores/batch/shared/sources/log/rapportsTextesWeb.log
|
|
* 0 23 * * * /home/scores/batch/scripts/rapportsTextes.php -f >> /home/scores/batch/shared/sources/log/rapportsTextesFtp.log
|
|
*/
|
|
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED);
|
|
ini_set('auto_detect_line_endings', true);
|
|
|
|
// --- Define path to application directory
|
|
defined('APPLICATION_PATH')
|
|
|| define('APPLICATION_PATH', realpath(__DIR__ . '/../application'));
|
|
|
|
// --- Define application environment
|
|
defined('APPLICATION_ENV')
|
|
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
|
|
|
|
// --- Composer autoload
|
|
require_once realpath(__DIR__ . '/../vendor/autoload.php');
|
|
|
|
// --- Create application, bootstrap, and run
|
|
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
|
|
|
|
// --- Options
|
|
$displayUsage = false;
|
|
try {
|
|
$opts = new Zend_Console_Getopt(array(
|
|
'help|?' => "Displays usage information.",
|
|
'site-s' => "Rapports relatifs aux indiscore 2 et 3 de la journée courante ou depuis le SSAAMMJJ inclus",
|
|
'ftp-s' => "Traitement des demandes par ftp",
|
|
'file=s' => "Spécification du fichier de demande",
|
|
'verbose|v' => "Mode bavard ou debug",
|
|
));
|
|
$opts->parse();
|
|
} catch (Zend_Console_Getopt_Exception $e) {
|
|
$displayUsage = true;
|
|
}
|
|
|
|
// --- Aide / Options
|
|
if (count($opts->getOptions())==0 || isset($opts->help)) {
|
|
$displayUsage = true;
|
|
}
|
|
|
|
// --- Usage
|
|
if ($displayUsage) {
|
|
echo "\n"."Spécifique FransBonhomme : rapports textes suite à demande fichier."."\n\n";
|
|
echo $opts->getUsageMessage();
|
|
exit;
|
|
}
|
|
|
|
$c = new Zend_Config($application->getOptions());
|
|
|
|
// Stockage Client => SD
|
|
$pathClientSend = '/home/scores/batch/shared/clients/fransbonhomme/send';
|
|
|
|
// Stockage SD => Client
|
|
$pathClientRecv = '/home/scores/batch/shared/clients/fransbonhomme/recv';
|
|
|
|
$db = Zend_Db::factory($c->profil->db->metier);
|
|
Zend_Db_Table::setDefaultAdapter($db);
|
|
|
|
// Database
|
|
$config = new \Doctrine\DBAL\Configuration();
|
|
$connectionParams = array(
|
|
'dbname' => $c->profil->db->metier->params->dbname,
|
|
'user' => $c->profil->db->metier->params->username,
|
|
'password' => $c->profil->db->metier->params->password,
|
|
'host' => $c->profil->db->metier->params->host,
|
|
'charset' => 'utf8',
|
|
'driver' => 'pdo_mysql',
|
|
);
|
|
|
|
try {
|
|
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
|
|
Zend_Registry::set('doctrine', $conn);
|
|
} catch (\Doctrine\DBAL\DBALException $e) {
|
|
echo "Connection Database impossible.\n";
|
|
exit;
|
|
}
|
|
|
|
$execRef = new Scores_Exec_Ref('RAPPORTSTEXTE');
|
|
$execId = $execRef->start();
|
|
|
|
require_once APPLICATION_PATH.'/configs/config.php';
|
|
|
|
$tabCreation = array(
|
|
'a' => 'N/D',
|
|
'a1' => 'Création',
|
|
'a2' => 'Création suite à déménagement',
|
|
'a3' => 'Achat',
|
|
'a4' => 'Apport',
|
|
'a6' => 'Prise en location gérance',
|
|
'a7' => 'Partage',
|
|
'a8' => 'Reprise',
|
|
'aA' => 'Reprise globale de l\'exploitation agricole',
|
|
'aB' => 'Poursuite de l\'exploitation agricole par le conjoint',
|
|
'aC' => 'Transfert de propriété de l\'exploitation agricole',
|
|
'aD' => 'Apport d\'exploitation(s) agricole(s) individuelle(s)',
|
|
'aE' => 'Reprise d\'exploitation agricole individuelle',
|
|
);
|
|
|
|
$tabTypeExploitation = array(
|
|
0 => 'N/D',
|
|
1 => "Locataire du fond de commerce",
|
|
2 => "Loueur du fond de commerce",
|
|
3 => "Prestation de personnel",
|
|
10 => "Exploitation directe"
|
|
);
|
|
|
|
$tabFichLigneCmd=array();
|
|
$modeDebug=false;
|
|
$iDb=new Metier_Util_Db();
|
|
$iInsee = new Metier_Insee_MInsee($iDb);
|
|
|
|
$message='';
|
|
|
|
// --- Génération du fichier de demande depuis les logs de consultation indiscore2, indiscore3
|
|
if ($opts->site) {
|
|
if ($opts->site === true) {
|
|
$dateDemandes = date('Ymd');
|
|
} else {
|
|
$dateDemandes = $opts->site;
|
|
}
|
|
|
|
$fichierJour = 'extranet'.$dateDemandes;
|
|
$strDates = 'AND dateHeure>='.$dateDemandes.'000000';
|
|
|
|
$tabTmp = $iDb->select(
|
|
'sdv1.logs l, sdv1.utilisateurs u',
|
|
'LPAD(siren,9,0) AS siren, dateHeure',
|
|
"l.login=u.login AND u.login<>'fransbonrapports' AND u.idClient=93 AND l.page IN ('indiscore2','indiscore3') $strDates", false, MYSQL_ASSOC);
|
|
echo date('Y/m/d H:i:s') . " - Nombre de rapports 1 et 2 sur l'extranet : ".count($tabTmp)."\n";
|
|
|
|
$strDemandes='';
|
|
if (count($tabTmp)>0) {
|
|
foreach ($tabTmp as $i=>$demande) {
|
|
echo date('Y/m/d H:i:s') . " - " .$demande['siren'] ."\n";
|
|
$strDemandes.= $demande['siren'].' '."\n";
|
|
}
|
|
file_put_contents($pathClientSend . '/' . $fichierJour, $strDemandes);
|
|
|
|
$tabFichLigneCmd[] = $fichierJour;
|
|
}
|
|
}
|
|
|
|
// --- Fichier de demande par FTP
|
|
if ($opts->ftp) {
|
|
//client, name, depotType, depotDate, depotFile, nbLines, dateInsert, dateExecute
|
|
// --- Auto
|
|
if ($opts->ftp === true) {
|
|
// --- Detecter si la date n'est pas trop ancienne
|
|
$dateNow = new DateTime();
|
|
$dateIn1 = $dateNow->format('Y-m-d H:i:s');
|
|
$dateNow->sub(new DateInterval('P2D'));
|
|
$dateIn2 = $dateNow->format('Y-m-d H:i:s');
|
|
|
|
echo "Selection de fichier non traité entre $dateIn2 et $dateIn1\n";
|
|
|
|
$sql = "SELECT * FROM sdv1.flux_filein WHERE client=:client
|
|
AND name=:prestation AND depotType=:typeDepot AND dateInsert BETWEEN :dateIn2 AND :dateIn1
|
|
ORDER BY dateInsert DESC LIMIT 0,1";
|
|
$stmt = $conn->prepare($sql);
|
|
$stmt->bindValue('client', 'fransbonhomme');
|
|
$stmt->bindValue('prestation', 'RAPPORT');
|
|
$stmt->bindValue('typeDepot', 'FTP');
|
|
$stmt->bindValue('dateIn2', $dateIn2);
|
|
$stmt->bindValue('dateIn1', $dateIn1);
|
|
$stmt->execute();
|
|
if ($stmt->rowCount() == 0) {
|
|
echo date('Y-m-d H:i:s')." : Aucun traitement à réaliser.\n";
|
|
} else {
|
|
$p = $stmt->fetch(\PDO::FETCH_OBJ);
|
|
$tabFichLigneCmd[] = $p->depotFile;
|
|
}
|
|
}
|
|
// --- Manuel
|
|
else {
|
|
$sql = "SELECT * FROM sdv1.flux_filein WHERE client=:client
|
|
AND name=:prestation AND depotType=:typeDepot depotFile=:file
|
|
ORDER BY dateInsert DESC LIMIT 0,1";
|
|
$stmt = $conn->prepare($sql);
|
|
$stmt->bindValue('client', 'fransbonhomme');
|
|
$stmt->bindValue('prestation', 'RAPPORT');
|
|
$stmt->bindValue('typeDepot', 'FTP');
|
|
$stmt->bindValue('file', $file);
|
|
$stmt->execute();
|
|
if ($stmt->rowCount() > 0) {
|
|
$p = $stmt->fetch(\PDO::FETCH_OBJ);
|
|
$tabFichLigneCmd[] = $p->depotFile;
|
|
}
|
|
}
|
|
}
|
|
|
|
// --- Fichier de demande manuel
|
|
if ($opts->file) {
|
|
$tabFichLigneCmd[] = $opts->file;
|
|
}
|
|
|
|
// $OptionEOL => Linux : LF (\n), Windows CRLF (\r\n)
|
|
$OptionEOL = "\n";
|
|
|
|
// --- Traitement des fichiers en demande
|
|
if (count($tabFichLigneCmd) > 0) {
|
|
foreach ($tabFichLigneCmd as $fichierIn) {
|
|
$dateBegin = date('YmdHis');
|
|
|
|
if (!file_exists($pathClientSend.'/'.$fichierIn)) {
|
|
die("Erreur fichier '$fichierIn' inexistant !\n");
|
|
}
|
|
$dateIn = date("dmy", filemtime($pathClientSend.'/'.$fichierIn));
|
|
|
|
$fp = fopen($pathClientSend.'/'.$fichierIn, 'r');
|
|
if (!$fp) {
|
|
echo date('Y-m-d H:i:s') . " - Impossible de lire le fichier !"."\n";
|
|
exit;
|
|
}
|
|
|
|
// Lecture des lignes pour insertion en surveillance score
|
|
$nbLinesTotal = 0;
|
|
while (($ligne = fgets($fp)) !== false) {
|
|
$nbLinesTotal++;
|
|
|
|
$siren = substr($ligne, 0, 9);
|
|
if (!$iInsee->valideSiren($siren)) {
|
|
continue;
|
|
}
|
|
$ref = substr($ligne, 9, 10);
|
|
echo "$fichierIn\t$siren\t$ref";
|
|
|
|
// Mise sous surveillances
|
|
if (empty($ref)) {
|
|
$ref = $siren;
|
|
}
|
|
$login = 'fransbonsurvrapports';
|
|
$survSql = "SELECT * FROM jo.surveillances_site
|
|
WHERE source=:source AND login=:login AND siren=:siren";
|
|
$survStmt = $conn->prepare($survSql);
|
|
$survStmt->bindValue('source', 'annonces');
|
|
$survStmt->bindValue('login', $login);
|
|
$survStmt->bindValue('siren', $siren);
|
|
|
|
$done = 0;
|
|
if ($survStmt->rowCount() == 0) {
|
|
$data = array(
|
|
'source' => 'annonces',
|
|
'login' => $login,
|
|
'email' => 'contentieux@fransbonhomme.fr',
|
|
'siren' => $siren,
|
|
'nic' => 0,
|
|
'ref' => $ref,
|
|
'dateAjout' => date('Y-m-d'),
|
|
'dateSuppr' => '0000-00-00',
|
|
'encoursClient' => 0,
|
|
'rs' => '',
|
|
'cp' => 0,
|
|
'ville' => '',
|
|
'dateDerEnvoi' => '0000-00-00 00:00:00',
|
|
);
|
|
try {
|
|
$done = $conn->insert('jo.surveillances_site', $data);
|
|
} catch (\Doctrine\DBAL\DBALException $e) {
|
|
}
|
|
} else {
|
|
try {
|
|
$data = array(
|
|
'ref' => $ref,
|
|
);
|
|
$done = $conn->update('jo.surveillances_site', $data, array(
|
|
'source' => 'annonces',
|
|
'login' => $login,
|
|
'siren' => $siren
|
|
));
|
|
} catch (\Doctrine\DBAL\DBALExceptio $e) {
|
|
}
|
|
}
|
|
echo " - Surv=".$done;
|
|
echo "\n";
|
|
|
|
try {
|
|
$conn->insert('jo.scores_surveillance', array('siren'=>$siren));
|
|
} catch (\Doctrine\DBAL\DBALException $e) {
|
|
}
|
|
}
|
|
|
|
// --- Ecriture nombre d'entités total du fichier d'entrée
|
|
if ($opts->ftp) {
|
|
$conn->update('sdv1.flux_filein', array('nbLines' => $nbLinesTotal),
|
|
array('id' => $p->id));
|
|
}
|
|
|
|
if ($execId !== null) {
|
|
$execRef->total($execId, $nbLinesTotal);
|
|
}
|
|
|
|
echo date('Y/m/d H:i:s') . " - Nombre de lignes du fichier '$fichierIn' : ".$nbLinesTotal."\n";
|
|
// --- Retour au début du fichier
|
|
rewind($fp);
|
|
|
|
// --- Génération du fichier de sortie
|
|
$fichierOut = $fichierIn.'.out';
|
|
echo date('Y/m/d H:i:s') . " - Génération du fichier '$fichierOut'...\n";
|
|
$dateOut = date("dmy");
|
|
|
|
$nbLines = 0;
|
|
while (($ligne = fgets($fp)) !== false) {
|
|
$nbLines++;
|
|
echo date('Y/m/d H:i:s') . " - Ligne ".$nbLines."/".$nbLinesTotal."\n";
|
|
|
|
if ($execId !== null) {
|
|
$execRef->increment($execId, $nbLines);
|
|
}
|
|
|
|
$siren = substr($ligne, 0, 9);
|
|
$ref = trim(substr($ligne, 9, 10));
|
|
$rapport = '';
|
|
|
|
//Siren valide
|
|
if ($iInsee->valideSiren($siren)) {
|
|
$tabId = $iInsee->getIdentiteEntreprise($siren, 0, 0, false, false);
|
|
$siretOut = $tabId['SiretSiege'];
|
|
|
|
require_once 'Metier/Scores/MScores.php';
|
|
$tabIndiscore = calculIndiScore($siren, 0, false, 2, false);
|
|
$note = $tabIndiscore['Indiscore20'];
|
|
$encours = round($tabIndiscore['encours']/1000)*1000;
|
|
}
|
|
// Siren Faux
|
|
else {
|
|
$siretOut = $note = $encours = 0;
|
|
}
|
|
|
|
$siretIn=$siren.'00000';
|
|
|
|
//Entete
|
|
$entete = '02';
|
|
$entete.= Metier_Util_String::initstr($siretIn, 14, '0', Metier_Util_String::ALIGN_RIGHT); // SIRET demandé
|
|
$entete.= Metier_Util_String::initstr($siretOut, 14, '0', Metier_Util_String::ALIGN_RIGHT); // SIRET réponse
|
|
$entete.= Metier_Util_String::initstr($ref, 10); // Référence FransBonhomme
|
|
$entete.= Metier_Util_String::initstr($dateIn, 6, '0', Metier_Util_String::ALIGN_RIGHT); // Date demande
|
|
$entete.= Metier_Util_String::initstr($dateOut, 6, '0', Metier_Util_String::ALIGN_RIGHT); // Date réponse
|
|
$entete.= Metier_Util_String::initstr($note, 2, '0', Metier_Util_String::ALIGN_RIGHT); // Note
|
|
$entete.= Metier_Util_String::initstr('', 2); // Filler 1
|
|
$entete.= Metier_Util_String::initstr($encours, 6, '0', Metier_Util_String::ALIGN_RIGHT); // Encours en euros sans décimale
|
|
$entete.= Metier_Util_String::initstr('00000004S et D', 63); // 7x0 + 4 (code Sté) + Nom Sté RC
|
|
//Fin Entete;
|
|
|
|
//Rapport
|
|
if (intval($siretOut)!=0) {
|
|
$rapport =Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr(' '.$tabId['Nom'], 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr(' '.$tabId['Nom2'].' '.$tabId['Sigle'].' '.$tabId['Enseigne'], 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr(' '.preg_replace('/^0+/', '', $tabId['Adresse']), 50).
|
|
Metier_Util_String::initstr(' TEL : '.preg_replace('/[^0-9]/', '', $tabId['Tel']), 30).$OptionEOL;
|
|
if (trim($tabId['Adresse2'])<>'') {
|
|
$rapport.=Metier_Util_String::initstr(' '.$tabId['Adresse2'], 80).$OptionEOL;
|
|
}
|
|
$rapport.=Metier_Util_String::initstr(' '.$tabId['CP'].' '.$tabId['Ville'], 50).
|
|
Metier_Util_String::initstr(' FAX : '.preg_replace('/[^0-9]/', '', $tabId['Fax']), 30).$OptionEOL;
|
|
if ($tabId['PaysIso2']<>'FR') {
|
|
$rapport.=Metier_Util_String::initstr(' '.$tabId['Pays'], 80).$OptionEOL;
|
|
}
|
|
if (trim($tabId['Web'])<>'') {
|
|
$rapport.=Metier_Util_String::initstr(' WEB : '.$tabId['Web'], 80).$OptionEOL;
|
|
}
|
|
if (trim($tabId['Mail'])<>'') {
|
|
$rapport.=Metier_Util_String::initstr(' MEL : '.$tabId['Mail'], 80).$OptionEOL;
|
|
}
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('SIRET : '. substr($tabId['SiretSiege'], 0, 3).' '.
|
|
substr($tabId['SiretSiege'], 3, 3).' '.
|
|
substr($tabId['SiretSiege'], 6, 3).' '.
|
|
substr($tabId['SiretSiege'], 9, 5).' '.
|
|
' RCS : '.$tabId['numRC'].' '.
|
|
preg_replace('/^(TC |TI |TGI |TGIcc )/i', '', $tabId['TribunalLib']), 80).$OptionEOL;
|
|
|
|
/** Situation Juridique **/
|
|
$dateRadiation=$tabId['dateRad'];
|
|
$situationjuridique=$tabId['SituationJuridique'];
|
|
$libSituation='';
|
|
if (in_array(substr($situationjuridique, 0, 1), array('P', 'R'))) {
|
|
if (isset($dateRadiation) && $dateRadiation!='' && $dateRadiation!='0000-00-00') {
|
|
$dateRad = Metier_Util_Date::dateT('Ymd', 'd/m/Y', str_replace('-', '', $dateRadiation));
|
|
}
|
|
if ($situationjuridique=='P') {
|
|
$libSituation.= 'En procédure collective';
|
|
if ($dateRad!='') {
|
|
$libSituation.= 'Radié du RCS le '.$dateRad;
|
|
}
|
|
}
|
|
//Radiation
|
|
if ($situationjuridique=='RR') {
|
|
$libSituation.= 'Radié du RCS';
|
|
if ($dateRad!='') {
|
|
$libSituation.= ' le '.$dateRad;
|
|
}
|
|
} elseif ($situationjuridique=='RP') {
|
|
$libSituation.= 'Radiation publiée';
|
|
if ($dateRad!='') {
|
|
$libSituation.= ' le '.$dateRad;
|
|
}
|
|
}
|
|
} elseif ($tabId['EntActiveRCS']==1) {
|
|
$libSituation.= 'Actif au RCS';
|
|
}
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('SITUA. JUR.: '.$libSituation, 80).$OptionEOL;//@todo multiligne
|
|
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('FORME JUR. : '.$tabId['FJ'].' '.$tabId['FJ_lib'], 80).$OptionEOL;//@todo multiligne
|
|
|
|
if ($tabId['Capital']>0) {
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('CAPITAL : '.number_format($tabId['Capital'], 0, '.', ' ').' '.$tabId['CapitalDev'], 80).$OptionEOL;
|
|
}
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$dateImm=str_replace('-', '', $tabId['dateImmat']);
|
|
if (substr($dateImm, 0, 4)*1==0) {
|
|
$dateImm=$tabId['DateCreaEn'];
|
|
}
|
|
if (substr($dateImm, 0, 4)*1==0) {
|
|
$dateImm=$tabId['DateCreaEt'];
|
|
}
|
|
$rapport.=Metier_Util_String::initstr('CREATION : '.Metier_Util_Date::dateT('Ymd', 'M Y', $dateImm), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('CODE NAF : '.$tabId['NafEnt'].' '.$tabId['NafEntLib'], 80).$OptionEOL;//@todo multiligne
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('ACTIVITE : ', 80).$OptionEOL;
|
|
$rapport.=wordwrap($tabId['Activite'], 80, $OptionEOL).$OptionEOL;//@todo multiligne
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('ORIGINE DU FOND : '.$tabCreation['a'.$tabId['OrigineCreation']], 80).$OptionEOL;//@todo multiligne
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('TYPE D\'EXPLOITATION : '.$tabTypeExploitation[$tabId['TypeExploitation']*1], 80).$OptionEOL;//@todo multiligne
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
|
|
$nbEts=($tabId['NbEtab']*1)-1;
|
|
if ($nbEts<0) {
|
|
$nbEts=0;
|
|
}
|
|
$rapport.=Metier_Util_String::initstr('NOMBRE D\'ETABLISSEMENTS SECONDAIRES : '.$nbEts, 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('DIRIGEANT 1: '.strtoupper($tabId['dir1Titre']), 80).$OptionEOL;
|
|
if (substr($tabId['dir1DateNaiss'], 0, 4)*1==0) {
|
|
$strNaiss='';
|
|
} else {
|
|
$strNaiss=' né(e) le '.Metier_Util_Date::dateT('Y-m-d', 'd/m/Y', $tabId['dir1DateNaiss']);
|
|
}
|
|
$rapport.=Metier_Util_String::initstr(' '.$tabId['dir1NomPrenom'].$strNaiss, 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('DIRIGEANT 2: '.strtoupper($tabId['dir2Titre']), 80).$OptionEOL;
|
|
if (substr($tabId['dir2DateNaiss'], 0, 4)*1==0) {
|
|
$strNaiss='';
|
|
} else {
|
|
$strNaiss=' né(e) le '.Metier_Util_Date::dateT('Y-m-d', 'd/m/Y', $tabId['dir2DateNaiss']);
|
|
}
|
|
$rapport.=Metier_Util_String::initstr(' '.$tabId['dir2NomPrenom'].$strNaiss, 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
|
|
$rapport.=Metier_Util_String::initstr('GARANTIES', 80).$OptionEOL; /**@todo MORE*/
|
|
$tabBilans=$tabIndiscore['tabBilan'];
|
|
$devise=$tabBilans[0]['MONNAIE'];
|
|
//print_r($tabIndiscore);die();
|
|
if (($tabIndiscore['NbBilansScore']*1)==0) {
|
|
$rapport.=Metier_Util_String::initstr(' Néant', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('ELEMENTS FINANCIERS', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr(' Néant', 80).$OptionEOL;
|
|
} else {
|
|
$rapport.=Metier_Util_String::initstr(' Elles sont représentées par la valeur brute au bilan', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr(' du fonds de commerce pour un montant de : '.sprintf("%27s", number_format($tabBilans[0]['AH'], 0, ',', ' '))." $devise", 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr(' des constructions pour un montant de : '.sprintf("%27s", number_format($tabBilans[0]['AP'], 0, ',', ' '))." $devise", 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
|
|
$rapport.=Metier_Util_String::initstr("ELEMENTS FINANCIERS (SOMMES EN $devise)", 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr(' '. Metier_Util_Date::dateT('Ymd', 'd/m/Y', $tabBilans[0]['DATE_CLOTURE'])
|
|
.' '. Metier_Util_Date::dateT('Ymd', 'd/m/Y', $tabBilans[1]['DATE_CLOTURE'])
|
|
.' '. Metier_Util_Date::dateT('Ymd', 'd/m/Y', $tabBilans[2]['DATE_CLOTURE']), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr(' '. $tabBilans[0]['DUREE_MOIS'].' mois'
|
|
.' '. $tabBilans[1]['DUREE_MOIS'].' mois'
|
|
.' '. $tabBilans[2]['DUREE_MOIS'].' mois', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('CA : '. sprintf("%14s", number_format($tabBilans[0]['FL'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[1]['FL'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[2]['FL'], 0, ',', ' ')), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('CA EXPORT : '. sprintf("%14s", number_format($tabBilans[0]['FK'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[1]['FK'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[2]['FK'], 0, ',', ' ')), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('RESULTAT COURANT : '. sprintf("%14s", number_format($tabBilans[0]['GW'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[1]['GW'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[2]['GW'], 0, ',', ' ')), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('RESULTAT NET : '. sprintf("%14s", number_format($tabBilans[0]['HN'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[1]['HN'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[2]['HN'], 0, ',', ' ')), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('FONDS PROPRES : '. sprintf("%14s", number_format($tabBilans[0]['DL'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[1]['DL'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[2]['DL'], 0, ',', ' ')), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('FRAIS FINANCIERS : '. sprintf("%14s", number_format($tabBilans[0]['GU'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[1]['GU'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[2]['GU'], 0, ',', ' ')), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('TOTAL DETTES : '. sprintf("%14s", number_format($tabBilans[0]['EC'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[1]['EC'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[2]['EC'], 0, ',', ' ')), 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('EFFECTIFS : '. sprintf("%14s", number_format($tabBilans[0]['YP'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[1]['YP'], 0, ',', ' '))
|
|
.' '. sprintf("%14s", number_format($tabBilans[2]['YP'], 0, ',', ' ')), 80).$OptionEOL;
|
|
}
|
|
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('PARTENAIRES FINANCIERS', 80).$OptionEOL;
|
|
$mBanque = new Metier_Partenaires_MBanques($iDb);
|
|
$tabBanque = array(); //$mBanque->getListeBanques($siren);
|
|
if (count($tabBanque)==0) {
|
|
$rapport.= Metier_Util_String::initstr(' Aucun partenaire n\'est référencé dans notre base.', 80).$OptionEOL;
|
|
} else {
|
|
foreach ($tabBanque as $i=>$lien) {
|
|
$rapport.= Metier_Util_String::initstr(' '.$lien['libBanque'], 80).$OptionEOL;
|
|
if ($i>=3) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/** § ANNONCES **/
|
|
$bodc=false;
|
|
$nbAnn=0;
|
|
$tabAnn=$iInsee->getAnnoncesLegales($siren);
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('ANNONCES LEGALES', 80).$OptionEOL;
|
|
if (count($tabAnn)>0) {
|
|
foreach ($tabAnn as $i=>$depot) {
|
|
$annDate=Metier_Util_Date::dateT('Y-m-d', 'd/m/Y', $depot['DateParution']);
|
|
foreach ($depot['evenements'] as $even) {
|
|
$annEve=$even['CodeEven'];
|
|
if ($annEve>=3000 && $annEve<4000) {
|
|
if ($bodc) {
|
|
continue;
|
|
}
|
|
$bodc=true;
|
|
}
|
|
$annLib=$even['LibEven'];
|
|
$rapport.=Metier_Util_String::initstr(" $annDate $annLib", 80).$OptionEOL;
|
|
$annDate=' ';
|
|
}
|
|
$nbAnn++;
|
|
if ($nbAnn>=6) {
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
$rapport.=Metier_Util_String::initstr(' Aucune annonce pour cette entreprise.', 80).$OptionEOL;
|
|
}
|
|
|
|
/** § dirigeance **/
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('DIRIGEANCE', 80).$OptionEOL;
|
|
|
|
/** § Liens **/
|
|
$mLiens = new Metier_Liens_Base();
|
|
$mLiens->setId($siren, 'siren');
|
|
$tabAct = $tabPar = array();
|
|
try {
|
|
$tabAct = $mLiens->getActionnaires();
|
|
} catch (Exception $e) {
|
|
}
|
|
try {
|
|
$tabPart = $mLiens->getParticipations();
|
|
} catch (Exception $e) {
|
|
}
|
|
if (count($tabAct)==0 && count($tabPart)==0) {
|
|
$rapport.=Metier_Util_String::initstr(' A notre connaissance, l\'entreprise est indépendante.', 80).$OptionEOL;
|
|
} else {
|
|
foreach ($tabAct as $i=>$lien) {
|
|
$rapport.=Metier_Util_String::initstr(' ACTIONNAIRE à '.$lien->PDetention.' % : '.$lien->RS.' ('.$lien->siren.')', 80).$OptionEOL;
|
|
if ($i>=3) {
|
|
break;
|
|
}
|
|
}
|
|
foreach ($tabPart as $i=>$lien) {
|
|
$rapport.=Metier_Util_String::initstr(' FILIALE à '.$lien->PDetention.' % : '.$lien->RS.' ('.$lien->siren.')', 80).$OptionEOL;
|
|
if ($i>=3) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
|
|
/** § commentaires **/
|
|
$nbLiP=$nbLiM=0;
|
|
$startLi = false;
|
|
$startPaiement = 0;
|
|
foreach ($tabIndiscore['tabCommentaires'] as $i=>$txt) {
|
|
if ($i==5000) {
|
|
continue;
|
|
}
|
|
|
|
if ($i==10001000 || $startPaiement==1) {
|
|
$rapport.= Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$startPaiement++;
|
|
} else {
|
|
$startPaiement=0;
|
|
}
|
|
|
|
if ($i==10000700 || $i==10000800) {
|
|
$rapport.= Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$startLi = true;
|
|
} else {
|
|
$startLi = false;
|
|
}
|
|
|
|
$ligneLi = false;
|
|
if (preg_match('/LI\+/i', $txt)) {
|
|
$ligneLi=true;
|
|
$nbLiP++;
|
|
} elseif (preg_match('/LI\-/i', $txt)) {
|
|
$ligneLi=true;
|
|
$nbLiM++;
|
|
}
|
|
|
|
if (!$startLi && !$ligneLi && $startPaiement==0) {
|
|
continue;
|
|
}
|
|
//Plus de 5 LI, on arrete
|
|
if (($nbLiP>5 && $ligneLiP) || ($nbLiM>5 && $ligneLiM)) {
|
|
continue;
|
|
}
|
|
//echo "Ligne : $i => $txt\n";
|
|
|
|
/*$txt = strtr($txt, array(
|
|
'<LI+>'=>'+',
|
|
'<LI->'=>'-',
|
|
' '=>' ',
|
|
'€'=>'E',
|
|
'€'=>'E',
|
|
chr(160)=>' ',
|
|
));*/
|
|
//$txt = str_replace(array('<LI+>','<LI->',' ','€','€',chr(160)), array('+','-',' ','E','E',' '), $txt);
|
|
$txt = str_replace(array('<LI+>', '<LI->', '€'), array('+', '-', 'E'), $txt);
|
|
//echo ".=> $txt\n";
|
|
$txt = html_entity_decode($txt, ENT_QUOTES, 'UTF-8');
|
|
//echo ".=> $txt\n";
|
|
$txt = wordwrap(strip_tags($txt), 80, $OptionEOL).$OptionEOL;
|
|
//echo ".=> $txt\n";
|
|
$rapport.= $txt;
|
|
}
|
|
|
|
/** § scoring **/
|
|
if ($tabIndiscore['Indiscore20']==0) {
|
|
$strTendance='';
|
|
} else {
|
|
$strTendance=' (Tendance '.$tabIndiscore['TendanceIndiscore'].')';
|
|
}
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('COTATION INDISCORE : '.$tabIndiscore['Indiscore20'].'/20 '.$strTendance, 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('LIMITE DE CREDIT : '.(round($tabIndiscore['encours']/1000)*1000).' EUR', 80).$OptionEOL;
|
|
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
$rapport.=Metier_Util_String::initstr('', 80).$OptionEOL;
|
|
|
|
$rapport = utf8_decode($rapport);
|
|
} //Fin rapport
|
|
|
|
// --- Ecriture ligne dans le fichier
|
|
file_put_contents($pathClientRecv.'/'.$fichierOut, $entete.$OptionEOL.$rapport, FILE_APPEND);
|
|
|
|
// --- Insertion log de facturation
|
|
if ($opts->ftp!==null || $opts->file!==null) {
|
|
try {
|
|
$conn->insert('sdv1.logs', array(
|
|
'login' => 'fransbonrapports',
|
|
'page' => 'indiscore3',
|
|
'siren' => $siren,
|
|
'nic' => substr($siretOut, 9, 5),
|
|
'params' => '',
|
|
'dateHeure' => date('YmdHis')
|
|
));
|
|
} catch (\Doctrine\DBAL\DBALException $e) {
|
|
echo date('Y/m/d H:i:s') ."Impossible d'enregistrer le log $siren :".$e->getMessage()."\n";
|
|
}
|
|
}
|
|
} // Fin de lecture des lignes du fichier
|
|
|
|
// Surcharge du nom du fichier pour les traitements manuel
|
|
if ($opts->file || substr($fichierIn, 0, 7) == 'demMail') {
|
|
$newname = preg_replace('/[0-9]{8}/', date('Ymd'), basename($fichierOut, '.out'));
|
|
if (rename($pathClientRecv.'/'.$fichierOut, $pathClientRecv.'/'.$newname.'.out') === true) {
|
|
$fichierOut = $newname.'.out';
|
|
}
|
|
}
|
|
|
|
// Ecriture dans la table des prestations
|
|
$dateEnd = date('YmdHis');
|
|
$conn->insert('sdv1.flux_fileout', array(
|
|
'client' => 'fransbonhomme',
|
|
'name' => 'RAPPORT',
|
|
'nbLines' => $nbLines,
|
|
'dateBegin' => $dateBegin,
|
|
'dateEnd' => $dateEnd,
|
|
'fileOut' => $fichierOut,
|
|
'depotType' => 'FTP',
|
|
'depotDate' => '0000-00-00 00:00:00',
|
|
));
|
|
if ($opts->ftp) {
|
|
// -- Ecriture date d'exectution
|
|
$conn->update('sdv1.flux_filein', array('dateExecute' => $dateEnd),
|
|
array('id' => $p->id));
|
|
}
|
|
}
|
|
} // Fin de lecture des fichiers de demande
|
|
else {
|
|
echo date('Y/m/d H:i:s') . "Aucun fichier à traiter !\n";
|
|
}
|
|
|
|
if ($execId !== null) {
|
|
$execRef->end($execId);
|
|
}
|
|
|
|
echo date('Y/m/d H:i:s')." - Fin du traitement !\n";
|