623 lines
28 KiB
PHP
623 lines
28 KiB
PHP
<?php
|
|
/**
|
|
* crontab
|
|
* 0 22 * * * /home/scores/batch/scripts/rapportsTextes.php -d >> /home/data/sources/log/rapportsTextesWeb.log
|
|
* 0 23 * * * /home/scores/batch/scripts/rapportsTextes.php -f >> /home/data/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(dirname(__FILE__) . '/../application'));
|
|
|
|
// Define application environment
|
|
defined('APPLICATION_ENV')
|
|
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
|
|
|
|
// Ensure library/ is on include_path
|
|
set_include_path(implode(PATH_SEPARATOR, array(
|
|
realpath(APPLICATION_PATH . '/../library'),
|
|
get_include_path(),
|
|
)));
|
|
|
|
//Use classmap autoloader - useful with opcode and realpath cache
|
|
require_once 'Zend/Loader/AutoloaderFactory.php';
|
|
require_once 'Zend/Loader/ClassMapAutoloader.php';
|
|
Zend_Loader_AutoloaderFactory::factory(array(
|
|
'Zend_Loader_ClassMapAutoloader' => array(
|
|
__DIR__ . '/../library/autoload_classmap.php',
|
|
),
|
|
'Zend_Loader_StandardAutoloader' => array(
|
|
'prefixes' => array(
|
|
'Zend' => __DIR__ . '/../library/Zend',
|
|
'Application' => __DIR__ . '/../library/Application',
|
|
'Scores' => __DIR__ . '/../library/Scores',
|
|
'SdMetier' => __DIR__ . '/../library/SdMetier',
|
|
'Metier' => __DIR__ . '/../library/Metier',
|
|
),
|
|
'fallback_autoloader' => true
|
|
)
|
|
));
|
|
|
|
// Create application, bootstrap, and run
|
|
$application = new Zend_Application(
|
|
APPLICATION_ENV,
|
|
APPLICATION_PATH . '/configs/application.ini'
|
|
);
|
|
|
|
$c = new Zend_Config($application->getOptions());
|
|
|
|
// Stockage Client => SD
|
|
$pathClientSend = '/home/data/clients/fransbonhomme/send';
|
|
|
|
// Stockage SD => Client
|
|
$pathClientRecv = '/home/data/clients/fransbonhomme/recv';
|
|
|
|
//Options
|
|
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) {
|
|
echo $e->getUsageMessage();
|
|
exit;
|
|
}
|
|
|
|
//Usage
|
|
if( isset($opts->help) || count($opts->getOptions())==0 )
|
|
{
|
|
echo "\n"."Spécifique FransBonhomme : rapports textes suite à demande fichier."."\n\n";
|
|
echo $opts->getUsageMessage();
|
|
exit;
|
|
}
|
|
|
|
$db = Zend_Db::factory($c->profil->db->metier);
|
|
Zend_Db_Table::setDefaultAdapter($db);
|
|
|
|
require_once APPLICATION_PATH.'/configs/config.php';
|
|
require_once 'framework/fwk.php';
|
|
require_once 'framework/common/chiffres.php';
|
|
require_once 'framework/common/dates.php';
|
|
require_once 'framework/mail/sendMail.php';
|
|
require_once 'Metier/partenaires/classMLiens2.php';
|
|
require_once 'Metier/partenaires/classMBanques.php';
|
|
require_once 'Metier/insee/classMInsee.php';
|
|
require_once 'Metier/scores/classMScores.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 WDB();
|
|
$iInsee=new MInsee($iDb);
|
|
|
|
$message='';
|
|
|
|
$tdate = new WDate();
|
|
|
|
// --- 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',
|
|
'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'].' '.EOL;
|
|
}
|
|
file_put_contents($pathClientSend . '/' . $fichierJour, $strDemandes);
|
|
|
|
$tabFichLigneCmd[] = $fichierJour;
|
|
}
|
|
}
|
|
|
|
// --- Fichier de demande par FTP
|
|
if ($opts->ftp) {
|
|
//client, name, depotType, depotDate, depotFile, nbLines, dateInsert, dateExecute
|
|
$fluxinM = new Application_Model_Sdv1FluxFileIn();
|
|
// --- Auto
|
|
if ($opts->ftp === true) {
|
|
// --- Detecter si la date n'est pas trop ancienne
|
|
$dateNow = new Zend_Date();
|
|
$dateIn1 = $dateNow->toString('yyyy-MM-dd HH:mm:ss');
|
|
|
|
$diff = $dateNow->sub(28, Zend_Date::HOUR);
|
|
$dateIn2 = $diff->toString('yyyy-MM-dd HH:mm:ss');
|
|
|
|
$sql = $fluxinM->select()
|
|
->where('client=?','fransbonhomme')
|
|
->where('name=?', 'RAPPORT')
|
|
->where('depotType=?','FTP')
|
|
->where('dateExecute=?','0000-00-00 00:00:00')
|
|
->where("dateInsert BETWEEN '".$dateIn2."' AND '".$dateIn1."' ")
|
|
->order('dateInsert DESC');
|
|
|
|
$pitems = $fluxinM->fetchAll($sql);
|
|
|
|
if ( $pitems->count()==0 ) {
|
|
echo date('Y-m-d H:i:s')." : Aucun traitement à réaliser.".PHP_EOL;
|
|
exit;
|
|
}
|
|
|
|
foreach ($pitems as $p) {
|
|
$tabFichLigneCmd[] = $p->depotFile;
|
|
break;
|
|
}
|
|
}
|
|
// --- Manuel
|
|
else {
|
|
$sql = $fluxinM->select()
|
|
->where('client=?','fransbonhomme')
|
|
->where('name=?', 'RAPPORT')
|
|
->where('depotType=?','FTP')
|
|
->where('depotFile=?', $opts->ftp)
|
|
->order('dateInsert DESC');
|
|
$p = $fluxinM->fetchRow($sql);
|
|
if ($p !== null) {
|
|
$tabFichLigneCmd[] = $p->depotFile;
|
|
}
|
|
}
|
|
}
|
|
|
|
// --- Fichier de demande manuel
|
|
if ($opts->file) {
|
|
$tabFichLigneCmd[] = $opts->file;
|
|
}
|
|
|
|
// --- 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".EOL;
|
|
|
|
if (!$iDb->insert('jo.scores_surveillance', array('siren'=>$siren)))
|
|
{
|
|
if ( $iDb->getLastErrorNum()==1062 ) continue;
|
|
die('Erreur SQL #'.mysql_errno().':'.mysql_error().EOL);
|
|
}
|
|
}
|
|
|
|
// --- Ecriture nombre d'entités total du fichier d'entrée
|
|
if ($opts->ftp) {
|
|
$fluxinM->update(array('nbLines' => $nbLinesTotal), 'id='.$p->id);
|
|
}
|
|
|
|
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'...".EOL;
|
|
$dateOut = date("dmy");
|
|
|
|
$nbLines = 0;
|
|
while (($ligne = fgets($fp)) !== false) {
|
|
$nbLines++;
|
|
echo date('Y/m/d H:i:s') . " - Ligne ".$nbLines."/".$nbLinesTotal.EOL;
|
|
|
|
$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'];
|
|
|
|
$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.= initstr($siretIn, 14, '0', ALIGN_RIGHT); // SIRET demandé
|
|
$entete.= initstr($siretOut, 14, '0', ALIGN_RIGHT); // SIRET réponse
|
|
$entete.= initstr($ref, 10); // Référence FransBonhomme
|
|
$entete.= initstr($dateIn, 6, '0', ALIGN_RIGHT); // Date demande
|
|
$entete.= initstr($dateOut, 6, '0', ALIGN_RIGHT); // Date réponse
|
|
$entete.= initstr($note, 2, '0', ALIGN_RIGHT); // Note
|
|
$entete.= initstr('', 2); // Filler 1
|
|
$entete.= initstr($encours, 6, '0', ALIGN_RIGHT); // Encours en euros sans décimale
|
|
$entete.= initstr('00000004S et D', 63); // 7x0 + 4 (code Sté) + Nom Sté RC
|
|
//Fin Entete;
|
|
|
|
//Rapport
|
|
if ( intval($siretOut)!=0 )
|
|
{
|
|
$rapport =initstr('', 80).EOL;
|
|
$rapport.=initstr(' '.$tabId['Nom'], 80).EOL;
|
|
$rapport.=initstr(' '.$tabId['Nom2'].' '.$tabId['Sigle'].' '.$tabId['Enseigne'],80).EOL;
|
|
$rapport.=initstr(' '.preg_replace('/^0+/','',$tabId['Adresse']), 50).
|
|
initstr(' TEL : '.preg_replace('/[^0-9]/','',$tabId['Tel']), 30).EOL;
|
|
if (trim($tabId['Adresse2'])<>'')
|
|
$rapport.=initstr(' '.$tabId['Adresse2'], 80).EOL;
|
|
$rapport.=initstr(' '.$tabId['CP'].' '.$tabId['Ville'], 50).
|
|
initstr(' FAX : '.preg_replace('/[^0-9]/','',$tabId['Fax']), 30).EOL;
|
|
if ($tabId['PaysIso2']<>'FR')
|
|
$rapport.=initstr(' '.$tabId['Pays'], 80).EOL;
|
|
if (trim($tabId['Web'])<>'')
|
|
$rapport.=initstr(' WEB : '.$tabId['Web'], 80).EOL;
|
|
if (trim($tabId['Mail'])<>'')
|
|
$rapport.=initstr(' MEL : '.$tabId['Mail'], 80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=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).EOL;
|
|
|
|
/** 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 = $tdate->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.=initstr('', 80).EOL;
|
|
$rapport.=initstr('SITUA. JUR.: '.$libSituation, 80).EOL;//@todo multiligne
|
|
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('FORME JUR. : '.$tabId['FJ'].' '.$tabId['FJ_lib'], 80).EOL;//@todo multiligne
|
|
|
|
if ($tabId['Capital']>0) {
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('CAPITAL : '.number_format($tabId['Capital'],0,'.',' ').' '.$tabId['CapitalDev'], 80).EOL;
|
|
}
|
|
$rapport.=initstr('', 80).EOL;
|
|
$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.=initstr('CREATION : '.$tdate->dateT('Ymd','M Y',$dateImm), 80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('CODE NAF : '.$tabId['NafEnt'].' '.$tabId['NafEntLib'], 80).EOL;//@todo multiligne
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('ACTIVITE : ',80).EOL;
|
|
$rapport.=wordwrap($tabId['Activite'], 80, EOL).EOL;//@todo multiligne
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('ORIGINE DU FOND : '.$tabCreation['a'.$tabId['OrigineCreation']], 80).EOL;//@todo multiligne
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('TYPE D\'EXPLOITATION : '.$tabTypeExploitation[$tabId['TypeExploitation']*1], 80).EOL;//@todo multiligne
|
|
$rapport.=initstr('', 80).EOL;
|
|
|
|
$nbEts=($tabId['NbEtab']*1)-1;
|
|
if ($nbEts<0) $nbEts=0;
|
|
$rapport.=initstr('NOMBRE D\'ETABLISSEMENTS SECONDAIRES : '.$nbEts, 80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('DIRIGEANT 1: '.strtoupper($tabId['dir1Titre']), 80).EOL;
|
|
if (substr($tabId['dir1DateNaiss'],0,4)*1==0) $strNaiss='';
|
|
else $strNaiss=' né(e) le '.$tdate->dateT('Y-m-d','d/m/Y',$tabId['dir1DateNaiss']);
|
|
$rapport.=initstr(' '.$tabId['dir1NomPrenom'].$strNaiss,80).EOL;
|
|
$rapport.=initstr('DIRIGEANT 2: '.strtoupper($tabId['dir2Titre']), 80).EOL;
|
|
if (substr($tabId['dir2DateNaiss'],0,4)*1==0) $strNaiss='';
|
|
else $strNaiss=' né(e) le '.$tdate->dateT('Y-m-d','d/m/Y',$tabId['dir2DateNaiss']);
|
|
$rapport.=initstr(' '.$tabId['dir2NomPrenom'].$strNaiss,80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
|
|
$rapport.=initstr('GARANTIES',80).EOL; /**@todo MORE*/
|
|
$tabBilans=$tabIndiscore['tabBilan'];
|
|
$devise=$tabBilans[0]['MONNAIE'];
|
|
//print_r($tabIndiscore);die();
|
|
if (($tabIndiscore['NbBilansScore']*1)==0) {
|
|
$rapport.=initstr(' Néant',80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('ELEMENTS FINANCIERS', 80).EOL;
|
|
$rapport.=initstr(' Néant',80).EOL;
|
|
} else {
|
|
$rapport.=initstr(' Elles sont représentées par la valeur brute au bilan',80).EOL;
|
|
$rapport.=initstr(' du fonds de commerce pour un montant de : '.sprintf("%27s", number_format($tabBilans[0]['AH'], 0, ',', ' '))." $devise",80).EOL;
|
|
$rapport.=initstr(' des constructions pour un montant de : '.sprintf("%27s", number_format($tabBilans[0]['AP'], 0, ',', ' '))." $devise",80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
|
|
$rapport.=initstr("ELEMENTS FINANCIERS (SOMMES EN $devise)", 80).EOL;
|
|
$rapport.=initstr(' '. $tdate->dateT('Ymd','d/m/Y',$tabBilans[0]['DATE_CLOTURE'])
|
|
.' '. $tdate->dateT('Ymd','d/m/Y',$tabBilans[1]['DATE_CLOTURE'])
|
|
.' '. $tdate->dateT('Ymd','d/m/Y',$tabBilans[2]['DATE_CLOTURE']), 80).EOL;
|
|
$rapport.=initstr(' '. $tabBilans[0]['DUREE_MOIS'].' mois'
|
|
.' '. $tabBilans[1]['DUREE_MOIS'].' mois'
|
|
.' '. $tabBilans[2]['DUREE_MOIS'].' mois', 80).EOL;
|
|
$rapport.=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).EOL;
|
|
$rapport.=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).EOL;
|
|
$rapport.=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).EOL;
|
|
$rapport.=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).EOL;
|
|
$rapport.=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).EOL;
|
|
$rapport.=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).EOL;
|
|
$rapport.=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).EOL;
|
|
$rapport.=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).EOL;
|
|
}
|
|
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('PARTENAIRES FINANCIERS', 80).EOL;
|
|
$mBanque = new MBanques($iDb);
|
|
$tabBanque = $mBanque->getListeBanques($siren);
|
|
if (count($tabBanque)==0) {
|
|
$rapport.=initstr(' Aucun partenaire n\'est référencé dans notre base.',80).EOL;
|
|
} else {
|
|
foreach ($tabBanque as $i=>$lien) {
|
|
$rapport.=initstr(' '.$lien['libBanque'], 80).EOL;
|
|
if ($i>=3) break;
|
|
}
|
|
}
|
|
|
|
/** § ANNONCES **/
|
|
$bodc=false;
|
|
$nbAnn=0;
|
|
$tabAnn=$iInsee->getAnnoncesLegales($siren);
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('ANNONCES LEGALES', 80).EOL;
|
|
if (count($tabAnn)>0) {
|
|
foreach ($tabAnn as $i=>$depot) {
|
|
$annDate=$tdate->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.=initstr(" $annDate $annLib",80).EOL;
|
|
$annDate=' ';
|
|
}
|
|
$nbAnn++;
|
|
if ($nbAnn>=6) break;
|
|
}
|
|
} else
|
|
$rapport.=initstr(' Aucune annonce pour cette entreprise.',80).EOL;
|
|
|
|
/** § dirigeance **/
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('DIRIGEANCE', 80).EOL;
|
|
|
|
/** § Liens **/
|
|
$mLiens = new MLiens2($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.=initstr(' A notre connaissance, l\'entreprise est indépendante.',80).EOL;
|
|
else {
|
|
foreach ($tabAct as $i=>$lien) {
|
|
$rapport.=initstr(' ACTIONNAIRE à '.$lien->PDetention.' % : '.$lien->RS.' ('.$lien->siren.')', 80).EOL;
|
|
if ($i>=3) break;
|
|
}
|
|
foreach ($tabPart as $i=>$lien) {
|
|
$rapport.=initstr(' FILIALE à '.$lien->PDetention.' % : '.$lien->RS.' ('.$lien->siren.')', 80).EOL;
|
|
if ($i>=3) break;
|
|
}
|
|
}
|
|
$rapport.=initstr('', 80).EOL;
|
|
|
|
/** § commentaires **/
|
|
$nbLiP=$nbLiM=0;
|
|
$startLi = false;
|
|
$startPaiement = 0;
|
|
foreach ($tabIndiscore['tabCommentaires'] as $i=>$txt) {
|
|
if ($i==5000) continue;
|
|
|
|
if ($i==10001000 || $startPaiement==1) {
|
|
$rapport.= initstr('', 80).EOL;
|
|
$startPaiement++;
|
|
} else {
|
|
$startPaiement=0;
|
|
}
|
|
|
|
if ($i==10000700 || $i==10000800) {
|
|
$rapport.= initstr('', 80).EOL;
|
|
$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,EOL).EOL;
|
|
//echo ".=> $txt\n";
|
|
$rapport.= $txt;
|
|
}
|
|
|
|
/** § scoring **/
|
|
if ($tabIndiscore['Indiscore20']==0) $strTendance='';
|
|
else $strTendance=' (Tendance '.$tabIndiscore['TendanceIndiscore'].')';
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('COTATION INDISCORE : '.$tabIndiscore['Indiscore20'].'/20 '.$strTendance, 80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('LIMITE DE CREDIT : '.(round($tabIndiscore['encours']/1000)*1000).' EUR', 80).EOL;
|
|
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
$rapport.=initstr('', 80).EOL;
|
|
|
|
$rapport = utf8_decode($rapport);
|
|
|
|
} //Fin rapport
|
|
|
|
// --- Ecriture ligne dans le fichier
|
|
file_put_contents($pathClientRecv.'/'.$fichierOut, $entete.EOL.$rapport, FILE_APPEND);
|
|
|
|
// --- Insertion log de facturation
|
|
if ($opts->ftp!==null || $opts->file!==null) {
|
|
$logsM = new Application_Model_Sdv1Logs();
|
|
try {
|
|
$logsM->insert(array(
|
|
'login' => 'fransbonrapports',
|
|
'page' => 'indiscore3',
|
|
'siren' => $siren,
|
|
'nic' => substr($siretOut,9,5),
|
|
'params' => '',
|
|
'dateHeure' => date('YmdHis')
|
|
));
|
|
} catch (Zend_Db_Exception $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 ) {
|
|
$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
|
|
$fluxoutM = new Application_Model_Sdv1FluxFileOut();
|
|
$dateEnd = date('YmdHis');
|
|
$fluxoutM->insert(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
|
|
$fluxinM->update(array('dateExecute' => $dateEnd), 'id='.$p->id);
|
|
}
|
|
}
|
|
} // Fin de lecture des fichiers de demande
|
|
else {
|
|
echo date('Y/m/d H:i:s') . "Aucun fichier à traiter !\n";
|
|
}
|
|
|
|
echo date('Y/m/d H:i:s')." - Fin du traitement !\n"
|
|
?>
|