2016-04-07 10:58:03 +02:00
< ? php
/**
* Diffusion Insee Spécifique A6CMO
* - Executer tous les lundi
* - Lire la tables des prestations de type A6CMO , récupérer les paramètres et le numéro d ' incrément de fichier
*
* Options d ' execution à paramètrer dans la base
* nomClient => Libellé du client pour la prestation
* typePrestation => diffusionInsee
* ( prestaActive => depuis paramètres )
* ( clientIdentifiant => Code prestation , depuis paramètres )
* clientNumTourFichier => Numéro de tour du fichier pour le client
* nbBilansMax => Nombre de bilans max
* typeLigneBilan => 401
* CodeCom => Liste des codes communes séparés par des virgules
* CJ =>
* CJEx => Liste des CJ séparés par des virgules
* NAF =>
* NAFEx => Liste des NAF séparés par des virgules
* freqenvois => Fréquence des envois H : Hebdo , M = Mensuel , Q = Quotidien
* mailTo => Liste des emails séparés par des virgules
* EOL => Linux : LF ( \n ), Windows CRLF ( \r\n )
*/
error_reporting ( E_ALL ^ E_STRICT ^ E_NOTICE ^ E_WARNING ^ E_DEPRECATED );
// --- 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
2016-04-11 16:32:24 +02:00
$displayUsage = false ;
2016-04-07 10:58:03 +02:00
try {
$opts = new Zend_Console_Getopt ( array (
'help|?' => " Displays usage information. " ,
'debug' => " Debuggage, genere un fichier test. " ,
'cron' => " Execution par cron, automatique " ,
'liste|l' => " Affichage de la liste des prestations " ,
'stock|s' => " Generation du stock " ,
'date=s' => " Depuis la date AAAAMMDD[HHIISS] " ,
'presta|p=s' => " Execution de la prestation id " ,
'force|f' => " Forcer l'execution " ,
'nomail' => " Ne pas envoyer l'email " ,
));
$opts -> parse ();
} catch ( Zend_Console_Getopt_Exception $e ) {
2016-04-11 16:32:24 +02:00
$displayUsage = true ;
}
// --- Aide / Options
if ( count ( $opts -> getOptions ()) == 0 || isset ( $opts -> help )) {
$displayUsage = true ;
2016-04-07 10:58:03 +02:00
}
// --- Usage
2016-04-11 16:32:24 +02:00
if ( $displayUsage ) {
2016-04-07 10:58:03 +02:00
echo " Production de Stock/Diffusion des bases A6CMO (ce traitement ce lance automatiquement pour les diffusions le lundi). \n " ;
echo $opts -> getUsageMessage ();
exit ;
}
require_once APPLICATION_PATH . '/configs/config.php' ;
$appconfig = new Zend_Config ( $application -> getOptions ());
$db = Zend_Db :: factory ( $appconfig -> profil -> db -> metier );
Zend_Db_Table_Abstract :: setDefaultAdapter ( $db );
2016-11-02 14:48:59 +01:00
// 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 ;
}
2016-04-07 10:58:03 +02:00
// --- Liste des paramètres
$defineParams = array (
'nomClient' ,
'typePrestation' ,
'clientIdentifiant' ,
'clientNumTourFichier' ,
'nbBilansMax' ,
'typeLigneBilan' ,
'CodeCom' ,
'CJ' ,
'CJEx' ,
'NAF' ,
'NAFEx' ,
'freqenvois' ,
'mailTo' ,
2015-07-27 20:47:19 +00:00
'EOL'
2016-04-07 10:58:03 +02:00
);
// --- Liste des prestations : CLIENT | PRESTATION | ACTIVE
if ( $opts -> liste ) {
$prestaM = new Application_Model_Sdv1ClientsPresta ();
$prestaSql = $prestaM -> select ( true ) -> setIntegrityCheck ( false )
-> join ( 'sdv1.clients' , 'clients_presta.clientId = clients.id' , array ( 'nom' ))
-> where ( 'clients_presta.type=?' , 'a6cmoinsee' );
$prestaResult = $prestaM -> fetchAll ( $prestaSql );
if ( count ( $prestaResult ) == 0 ) {
echo date ( 'Y-m-d H:i:s' ) . " - Aucune prestation. \n " ;
} else {
foreach ( $prestaResult as $p ) {
echo $p -> code ;
echo " \t " ;
if ( $p -> actif == 1 ) {
echo " ACTIF " ;
} else {
echo " INACTIF " ;
}
echo " \t " ;
echo $p -> label ;
echo " \t " ;
echo $p -> nom ;
echo " \n " ;
}
}
exit ;
}
// --- Liste des prestations pour execution
$prestaM = new Application_Model_Sdv1ClientsPresta ();
$prestaSql = $prestaM -> select ( true ) -> setIntegrityCheck ( false )
-> join ( 'sdv1.clients' , 'clients_presta.clientId = clients.id' , array ( 'nom' ))
-> where ( 'clients_presta.type=?' , 'a6cmoinsee' );
$prestaResult = $prestaM -> fetchAll ( $prestaSql );
if ( count ( $prestaResult ) == 0 ) {
2016-11-29 17:07:53 +01:00
echo date ( 'Y-m-d H:i:s' ) . " - Aucune prestation. \n " ;
exit ;
2016-04-07 10:58:03 +02:00
}
$tabPresta = array ();
foreach ( $prestaResult as $p ) {
$tabPresta [ $p -> code ] = $p ;
}
// --- Cron : Liste des prestations actives + execution
if ( $opts -> cron ) {
}
// --- Execution prestation unitaire
elseif ( $opts -> presta ) {
if ( array_key_exists ( $opts -> presta , $tabPresta )) {
$tabPresta = array ( $opts -> presta => $tabPresta [ $opts -> presta ]);
} else {
echo date ( 'Y-m-d H:i:s' ) . " - Prestation inconnue \n " ;
}
}
// --- Stop
else {
echo date ( 'Y-m-d H:i:s' ) . " - Aucune execution... \n " ;
}
$tabProduction = array ();
$tTime = array ();
// --- Execution
2016-11-29 17:07:53 +01:00
foreach ( $tabPresta as $prestaId => $prestaDetail ) {
2016-04-07 10:58:03 +02:00
echo date ( 'Y-m-d H:i:s' ) . " - Prestation " . $prestaId . " \n " ;
// --- Définition des paramètres par defaut
foreach ( $defineParams as $d ) {
$ { 'Option' . ucfirst ( $d )} = null ;
}
$OptionEOL = " \n " ;
$OptionFreqenvois = 'H' ;
// --- Lire les paramètres de la prestation
$paramsM = new Application_Model_Sdv1ClientsPrestaParams ();
$paramsSql = $paramsM -> select () -> where ( 'code=?' , $prestaId );
$paramsResult = $paramsM -> fetchAll ( $paramsSql );
if ( count ( $paramsResult ) == 0 ) {
echo date ( 'Y-m-d H:i:s' ) . " - Aucun paramètres. \n " ;
continue ;
} else {
// --- Un paramètre est enregistré dans une variable $Option{Name}
foreach ( $paramsResult as $p ) {
if ( in_array ( $p -> name , $defineParams )) {
$ { 'Option' . ucfirst ( $p -> name )} = trim ( $p -> value );
}
}
}
// --- Tableau de valeur
$tabFJ = array ();
if ( $OptionCJ !== null ) {
$tabFJ = explode ( ',' , $OptionCJ );
}
$tabFJexclus = array ();
if ( $OptionCJEx !== null ) {
$tabFJexclus = explode ( ',' , $OptionCJEx );
}
$tabNAF = array ();
if ( $OptionNAF !== null ) {
$tabNAF = explode ( ',' , $OptionNAF );
}
$tabNAFexclus = array ();
if ( $OptionNAFEx !== null ) {
$tabNAFexclus = explode ( ',' , $OptionNAFEx );
}
$tabDepCom = array ();
if ( $OptionCodeCom !== null ) {
2015-07-27 20:47:19 +00:00
$tabDepCom = explode ( ',' , $OptionCodeCom );
2016-04-07 10:58:03 +02:00
}
$prestaActive = $prestaDetail -> actif ;
// --- Lire la dernière execution
$execM = new Application_Model_Sdv1PrestaOut ();
$execSql = $execM -> select ()
-> where ( 'code=?' , $prestaId )
-> where ( 'dateEnd!="0000-00-00 00:00:00"' )
-> order ( 'dateEnd DESC' ) -> limit ( 1 );
$execResult = $execM -> fetchRow ( $execSql );
$dateLastExec = false ;
if ( $execResult !== null ) {
2016-09-30 11:46:43 +02:00
$dateLastExec = DateTime :: createFromFormat ( 'Y-m-d H:i:s' , $execResult -> dateEnd );
2016-04-07 10:58:03 +02:00
}
2016-09-30 11:46:43 +02:00
$dateNow = new DateTime ();
$dateNow -> setTime ( 0 , 0 , 0 );
2016-04-07 10:58:03 +02:00
// --- Surcharge date
if ( strlen ( $opts -> date ) == 8 ) {
2016-09-30 11:46:43 +02:00
$dateLastExec = DateTime :: createFromFormat ( 'Ymd' , $opts -> date );
2016-04-07 10:58:03 +02:00
} elseif ( strlen ( $opts -> date ) == 14 ) {
2016-09-30 11:46:43 +02:00
$dateLastExec = DateTime :: createFromFormat ( 'YmdHis' , $opts -> date );
2016-04-07 10:58:03 +02:00
}
2016-11-29 17:07:53 +01:00
$dateLastExec -> setTime ( 0 , 0 , 0 );
2016-04-07 10:58:03 +02:00
// --- Livraison d'un stock
if ( $opts -> stock ) {
}
// --- Suivi
elseif ( ! $opts -> force ) {
// --- Est ce que la prestation doit s'executer... freqenvois ?
2016-09-30 11:46:43 +02:00
if ( $dateLastExec !== false && $dateNow == $dateLastExec ) {
2016-04-07 10:58:03 +02:00
echo date ( 'Y-m-d H:i:s' ) . " - Déjà executé ce jour. \n " ;
continue ;
}
// Fréquence Mensuelle : le 1er lundi du mois
if ( $OptionFreqenvois == 'M' ) {
2016-09-30 11:46:43 +02:00
if ( $dateNow -> format ( 'j' ) < 8 && $dateNow -> format ( 'N' ) == 1 ) {
2016-04-07 10:58:03 +02:00
if ( $dateLastExec === false ) {
$dateLastExec = $dateNow ;
2016-09-30 11:46:43 +02:00
$dateLastExec -> sub ( new DateInterval ( 'P31D' ));
2016-04-07 10:58:03 +02:00
}
} else {
echo date ( 'Y-m-d H:i:s' ) . " - Pas d'execution ce jour. \n " ;
continue ;
}
}
// Fréquence Hebdomadaire (par défaut) : le lundi
elseif ( $OptionFreqenvois == 'H' ) {
2016-09-30 11:46:43 +02:00
if ( $dateNow -> format ( 'N' ) == 1 ) {
2016-04-07 10:58:03 +02:00
if ( $dateLastExec === false ) {
$dateLastExec = $dateNow ;
2016-09-30 11:46:43 +02:00
$dateLastExec -> sub ( new DateInterval ( 'P7D' ));
2016-04-07 10:58:03 +02:00
}
} else {
echo date ( 'Y-m-d H:i:s' ) . " - Pas d'execution ce jour. \n " ;
continue ;
}
}
// Fréquence Quotidienne : du lundi au vendredi
elseif ( $OptionFreqenvois == 'Q' ) {
2016-11-29 17:07:53 +01:00
if ( in_array ( $dateNow -> format ( 'j' ), array ( 1 , 2 , 3 , 4 , 5 ))) {
2016-04-07 10:58:03 +02:00
if ( $dateLastExec === false ) {
$dateLastExec = $dateNow ;
$dateLastExec -> subDay ( 1 );
}
} else {
echo date ( 'Y-m-d H:i:s' ) . " - Pas d'execution ce jour. \n " ;
continue ;
}
}
}
// Si pas de date
if ( $dateLastExec === false ) {
echo date ( 'Y-m-d H:i:s' ) . " - Pas de date. \n " ;
continue ;
}
$dateDebut = $dateLastExec -> toString ( 'yyyy-MM-dd HH:mm:ss' );
2016-11-29 17:07:53 +01:00
if ( ! defined ( 'VERSION_FICHIER_IDENTITE' )) {
define ( 'VERSION_FICHIER_IDENTITE' , '0106' );
}
2016-04-07 10:58:03 +02:00
$tLibFreq = array (
'Q' => 'Quotidien' ,
'H' => 'Hebdo' ,
2015-07-27 20:47:19 +00:00
'M' => 'Mensuel'
2016-04-07 10:58:03 +02:00
);
2016-07-19 10:37:56 +02:00
$iDb = new Metier_Util_Db ();
2016-04-07 10:58:03 +02:00
$iInsee = new Metier_Insee_MInsee ( $iDb );
$iBodacc = new Metier_Bodacc_MBodacc ( $iDb );
$iRnvp = new Metier_Partenaires_MRnvp ();
$dateDeb = date ( 'YmdHis' );
$file = $OptionTypePrestation . '_' . $prestaId . '_' . $dateDeb . '.txt' ;
$filepath = $appconfig -> profil -> path -> storage . '/clients/A6CMO/' . $file ;
if ( empty ( $opts -> debug )) {
$suiviM = new Application_Model_Sdv1PrestaOut ();
2015-07-27 20:47:19 +00:00
$suiviId = $suiviM -> insert ( array (
2016-04-07 10:58:03 +02:00
'code' => $prestaId ,
2015-07-27 20:47:19 +00:00
'dateStart' => $dateDeb ,
2016-04-07 10:58:03 +02:00
));
}
// --- Ligne d'entete
2016-07-19 11:06:10 +02:00
$str = Metier_Util_String :: initstr ( '001' , 3 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // Type de ligne
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $dateDeb , 14 ) . // Date de génération du fichier
2016-07-19 11:06:10 +02:00
Metier_Util_String :: initstr ( $OptionClientNumTourFichier , 10 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // Numéro de tour du fichier pour le client
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $prestaId , 36 ) . // Identifiant Client
Metier_Util_String :: initstr ( $OptionTypePrestation , 32 ) . // Type de prestation
Metier_Util_String :: initstr ( VERSION_FICHIER_IDENTITE , 4 ) . // Type de prestation
Metier_Util_String :: initstr ( FILLER , 1901 ) . // FILLER
2016-04-07 10:58:03 +02:00
'' ;
// --- Ecriture fichier
2016-11-29 17:07:53 +01:00
$isWrite = file_put_contents ( $filepath , Metier_Util_String :: initstr ( $str , LONGUEUR_LIGNE_SORTIE ) . $OptionEOL );
2016-04-07 10:58:03 +02:00
if ( $isWrite === false ) {
echo date ( 'Y-m-d H:i:s' ) . " - Impossible d'écrire le fichier $filepath\n " ;
continue ;
}
$nbLignes = 1 ;
$tabProduction [ $prestaId ][ 'nomClient' ] = $OptionNomClient ;
$tabProduction [ $prestaId ][ 'dateDeb' ] = $dateDeb ;
$tabProduction [ $prestaId ][ 'dateRetro' ] = $dateLastExec -> toString ( 'yyyy-MM-dd hh:ii:ss' );
$tabProduction [ $prestaId ][ 'frequence' ] = $OptionFreqenvois ;
$timeDeb = microtime ( true );
if ( count ( $tabFJ ) > 0 && $tabFJ [ 0 ] <> '' ) {
2016-11-29 17:07:53 +01:00
$strFJ = ' AND cj IN(' . implode ( ',' , $tabFJ ) . ') ' ;
2016-04-07 10:58:03 +02:00
} elseif ( count ( $tabFJexclus ) > 0 && $tabFJexclus [ 0 ] <> '' ) {
2016-11-29 17:07:53 +01:00
$strFJ = ' AND cj NOT IN(' . implode ( ',' , $tabFJexclus ) . ') ' ;
2016-04-07 10:58:03 +02:00
} else {
$strFJ = '' ;
}
if ( count ( $tabNAF ) > 0 && $tabNAF [ 0 ] <> '' ) {
2016-11-29 17:07:53 +01:00
$strNAF = " AND ape_etab IN(' " . implode ( " ',' " , $tabNAF ) . " ') " ;
2016-04-07 10:58:03 +02:00
} elseif ( count ( $tabNAFexclus ) > 0 && $tabNAFexclus [ 0 ] <> '' ) {
2016-11-29 17:07:53 +01:00
$strNAF = " AND ape_etab NOT IN(' " . implode ( " ',' " , $tabNAFexclus ) . " ') " ;
2016-04-07 10:58:03 +02:00
} else {
$strNAF = '' ;
}
$strDepCom = $strDepComStock = '' ;
foreach ( $tabDepCom as $idepcom => $depcom ) {
/** @todo Vérifier si les DOM fonctionnent **/
if ( $idepcom == 0 ) {
$strDepCom .= " AND ( " ;
$strDepComStock .= " AND ( " ;
}
2016-11-29 17:07:53 +01:00
$strDepCom .= " (insDEPET IN (' " . substr ( $depcom , 0 , 2 ) . " ','0 " . substr ( $depcom , 0 , 2 ) . " ' " ;
$strDepComStock .= " (adr_dep IN (' " . substr ( $depcom , 0 , 2 ) . " ','0 " . substr ( $depcom , 0 , 2 ) . " ' " ;
if ( substr ( $depcom , 0 , 2 ) > 96 ) {
$strDepCom .= " ,' " . substr ( $depcom , 0 , 3 ) . " ' " ;
$strDepComStock .= " ,' " . substr ( $depcom , 0 , 3 ) . " ' " ;
2016-04-07 10:58:03 +02:00
}
2016-11-29 17:07:53 +01:00
$strDepCom .= " ) " ;
$strDepComStock .= " ) " ;
if ( substr ( $depcom , 2 , 3 ) * 1 == 0 ) {
$depSeul = true ;
} else {
2016-04-07 10:58:03 +02:00
$depSeul = false ;
2016-11-29 17:07:53 +01:00
$strDepCom .= " AND insCOMET= " . substr ( $depcom , 2 , 3 );
$strDepComStock .= " AND adr_com= " . substr ( $depcom , 2 , 3 );
2016-04-07 10:58:03 +02:00
// On test si il y a présence d'un code rivoli séparé par un point "."
2016-11-29 17:07:53 +01:00
if ( substr ( $depcom , 5 , 1 ) == '.' ) {
$strDepCom .= " AND insCODEVOIE LIKE ' " . substr ( $depcom , 6 , 4 ) . " %' " ;
$strDepComStock .= " AND rivoli LIKE ' " . substr ( $depcom , 6 , 4 ) . " %' " ;
2016-04-07 10:58:03 +02:00
}
}
2016-11-29 17:07:53 +01:00
$strDepCom .= " ) " ;
$strDepComStock .= " ) " ;
if ( isset ( $tabDepCom [ $idepcom + 1 ])) {
$strDepCom .= ' OR ' ;
$strDepComStock .= ' OR ' ;
} elseif ( trim ( substr ( $depcom , 3 , 2 )) <> '' ) {
$strDepCom .= ')' ;
$strDepComStock .= ')' ;
} elseif ( $depSeul ) {
$strDepCom .= ')' ;
$strDepComStock .= ')' ;
}
2016-04-07 10:58:03 +02:00
}
if ( $opts -> stock ) {
echo date ( 'Y-m-d H:i:s' ) . " - Sélection du stock pour ' $OptionNomClient ' (dernier $OptionFreqenvois le $dateDebut ) \n " ;
} else {
echo date ( 'Y-m-d H:i:s' ) . " - Sélection de la cible $OptionFreqenvois pour ' $OptionNomClient ' depuis $dateDebut ... \n " ;
}
if ( $opts -> stock ) {
$field = 'siren, nic' ;
$table = 'etablissements_old' ;
$where = " source=2 AND actif=1 AND siege IN (0,1) $strDepComStock $strFJ $strNAF " ;
$etab = $iDb -> select ( $table , $field , $where , false , MYSQL_ASSOC );
if ( $iDb -> getLastErrorNum () == 1146 ) {
// Table don't exist ?
$table = 'etablissements' ;
$etab = $iDb -> select ( $table , $field , $where , false , MYSQL_ASSOC );
}
2016-11-29 17:07:53 +01:00
} else {
$strFJ = str_replace ( ' cj ' , ' insCJ ' , $strFJ );
$strNAF = str_replace ( ' ape_etab ' , ' insAPET700 ' , $strNAF );
2016-04-07 10:58:03 +02:00
$field = ' LPAD ( insSIREN , 9 , 0 ) AS siren , LPAD ( insNIC , 5 , 0 ) AS nic ,
insDESTINAT , insEVE , insDATEVE , insTYPETAB , insSIRETPS , insSIRETASS , MAX ( insMNICSIEGE ) AS insMNICSIEGE , MAX ( insMNOMEN ) AS insMNOMEN , MAX ( insMCJ ) AS insMCJ ,
MAX ( insMAPEN ) AS insMAPEN , MAX ( insMENSEIGNE ) AS insMENSEIGNE , MAX ( insMAPET ) AS insMAPET , MAX ( insMADRESSE ) AS insMADRESSE , MAX ( insMAUXILT ) AS insMAUXILT ,
MAX ( insMSIGLE ) AS insMSIGLE , MAX ( insMEXPLEN ) AS insMEXPLEN , MAX ( insMEXPLET ) AS insMEXPLET , insDREACTET , insDREACTEN ' ;
$table = 'insee.insee_even' ;
$where = " 1 $strDepCom $strFJ $strNAF AND dateInsert>=' $dateDebut ' AND (insVMAJ NOT IN ('I','F') OR insVMAJ2=1 OR insVMAJ3=1) GROUP BY insSIREN, insNIC " ;
$etab = $iDb -> select ( $table , $field , $where , false , MYSQL_ASSOC );
}
echo " SELECT $field FROM $table WHERE $where ; " ;
echo date ( 'Y-m-d H:i:s' ) . " - " . $iDb -> getLastErrorMsg () . " \n " ;
$nbEtab = count ( $etab );
echo date ( 'Y-m-d H:i:s' ) . " - Nombre d'établissement en sortie : " . $nbEtab . " \n " ;
if ( empty ( $opts -> debug )) {
$suiviM -> update ( array ( 'unitTotal' => $nbEtab ), 'id=' . $suiviId );
}
//@todo :
$tabProduction [ $prestaId ][ 'nbEtabs' ] = $nbEtab ;
$unit = 0 ;
$nbLignes200 = $nbLignesBil = 0 ;
2016-11-29 17:07:53 +01:00
foreach ( $etab as $lSiret ) {
2016-04-07 10:58:03 +02:00
$unit ++ ;
// Réinitialisation de zones
$ev_EVE = $ev_TYPETAB = $ev_DESTINAT = '' ;
$ev_SIRETLIE = $ev_SIRETLIETYPE = $ev_MNICSIEGE = $ev_MNOMEN = $ev_MCJ = $ev_MAPEN = $ev_DREACTEN = $ev_DATEFEREN = $ev_DATEVE = 0 ;
$ev_MENSEIGNE = $ev_MAPET = $ev_MADRESSE = $ev_MAUXILT = $ev_MSIGLE = $ev_MEXPLEN = $ev_MEXPLET = 0 ;
$siren = $lSiret [ 'siren' ];
$nic = $lSiret [ 'nic' ];
$t1 = microtime ( 1 );
$a = $iInsee -> getIdentiteEntreprise ( $siren , $nic );
$t2 = microtime ( 1 );
$tTime [ 'Identite' ] += $t2 - $t1 ;
$b = $iInsee -> getInfosNotice ( $siren , $nic );
$t3 = microtime ( 1 );
$tTime [ 'Notice' ] += $t3 - $t2 ;
$c = $iInsee -> getAdresse ( $siren , $nic );
$t4 = microtime ( 1 );
$tTime [ 'Adresse' ] += $t4 - $t3 ;
2016-11-29 17:07:53 +01:00
echo date ( 'Y/m/d - H:i:s' ) . " - Entité $unit / $nbEtab - Siret $siren $nic\n " ;
2016-04-07 10:58:03 +02:00
if ( $opts -> stock === null ) {
$ev_EVE = trim ( $lSiret [ 'insEVE' ]);
// Conversion de sirene4 en sirene3
2016-11-29 17:07:53 +01:00
switch ( $ev_EVE ) {
case 'CE' : // Création établissement
case 'CC' : // Création par le calage
$ev_EVE = 130 ; // Création de l'établissement
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'CS' : // Création siège
$ev_EVE = 110 ; // Création de l'entreprise
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'SU' : // Cessation juridique
$ev_EVE = 410 ; // Cessation juridique de l'entreprise
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'O' : // Sortie du champ de la diffusion commerciale
$ev_EVE = 795 ; // Personne radiée à sa demande de de la base SIRENE diffusion
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'RI' : // Refus d'immatriculation au RCS
$ev_EVE = 810 ; // Suppression du SIREN suite au refus d'inscription au RCS
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'I' : // Entrée dans le champ de la diffusion commerciale
$ev_EVE = 125 ; // Réactivation de l'entreprise suite à une mise à jour du répertoire SIRENE
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'RE' : // Réactivation établissement
$ev_EVE = 145 ; // Reprise d'activité de l'établissement suite à une mise à jour du répertoire SIRENE
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'RS' : // Réactivation siège
$ev_EVE = 120 ; // Réactivation de l'entreprise
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'SE' : // Fermeture (ou désactivation) établissement
$ev_EVE = 430 ; // Fermeture de l'établissement
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'SS' : // Fermeture (ou désactivation) siège
$ev_EVE = 425 ; // Absence d'activité d'une entreprise suite à une mise à jour au répertoire SIRENE
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'MC' : // Modification par le calage
$ev_EVE = 781 ; // Modification de l'établissement suite à correction d'erreur
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'SC' : // Suppression par le calage
$ev_EVE = 435 ; // Fermeture de l'établissement suite à une mise à jour au répertoire SIRENE
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'ME' : // Modification établissement
$ev_EVE = 780 ; // Modification de l'établissement
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'MS' : // Modification siège
$ev_EVE = 610 ; // Modification d'activité au niveau du SIREN associé à une activation économique par adjonction de moyens de production
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'MU' : // Modification entreprise
$ev_EVE = 631 ; // Modification d'activité du SIREN
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'MTDE' : // Modification établissement départ (transfert)
case 'MTAE' : // Modification établissement arrivée (transfert)
case 'MTDS' : // Modification siège départ (transfert)
case 'MTAS' : // Modification siège arrivée (transfert)
$ev_EVE = 540 ; // Modification de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'CTE' : // Création établissement (transfert)
case 'CTS' : // Création siège (transfert)
$ev_EVE = 520 ; // Création de l'établissement d'arrivée et modification de l'établissement de départ dans le cadre d'un transfert
2016-04-07 10:58:03 +02:00
break ;
2016-11-29 17:07:53 +01:00
case 'STE' : // Fermeture établissement (transfert)
case 'STS' : // Fermeture siège (transfert)
$ev_EVE = 530 ; // Modification de l'établissement d'arrivée et cessation de l'établissement de départ dans le cadre d'un transfert
2016-04-07 10:58:03 +02:00
break ;
default :
2016-11-29 17:07:53 +01:00
$ev_EVE = substr ( $ev_EVE , 0 , 3 );
2016-04-07 10:58:03 +02:00
break ;
}
$ev_DATEVE = $lSiret [ 'insDATEVE' ];
$ev_TYPETAB = $lSiret [ 'insTYPETAB' ];
$ev_DESTINAT = $lSiret [ 'insDESTINAT' ];
2016-11-29 17:07:53 +01:00
switch ( $ev_EVE * 1 ) {
2016-04-07 10:58:03 +02:00
case 410 :
case 420 :
case 425 :
2016-11-29 17:07:53 +01:00
$ev_DATEFEREN = substr ( strtr ( $ev_DATEVE , array ( '-' => '' , ':' => '' )), 0 , 8 );
2016-04-07 10:58:03 +02:00
break ;
}
$ev_SIRETLIE = $lSiret [ 'insSIRETPS' ] * 1 ;
if ( $ev_SIRETLIE < 1000 ) {
$ev_SIRETLIE = $lSiret [ 'insSIRETASS' ] * 1 ;
2016-11-29 17:07:53 +01:00
if ( $ev_SIRETLIE < 1000 ) {
$ev_SIRETLIETYPE = '' ;
} else {
$ev_SIRETLIETYPE = 'A' ;
}
} else {
2016-04-07 10:58:03 +02:00
$ev_SIRETLIETYPE = 'P' ;
2016-11-29 17:07:53 +01:00
}
2016-04-07 10:58:03 +02:00
$ev_MNICSIEGE = $lSiret [ 'insMNICSIEGE' ];
$ev_MNOMEN = $lSiret [ 'insMNOMEN' ];
$ev_MCJ = $lSiret [ 'insMCJ' ];
$ev_MAPEN = $lSiret [ 'insMAPEN' ];
$ev_MENSEIGNE = $lSiret [ 'insMENSEIGNE' ];
$ev_MAPET = $lSiret [ 'insMAPET' ];
$ev_MADRESSE = $lSiret [ 'insMADRESSE' ];
$ev_MAUXILT = $lSiret [ 'insMAUXILT' ];
$ev_MSIGLE = $lSiret [ 'insMSIGLE' ];
$ev_MEXPLEN = $lSiret [ 'insMEXPLEN' ];
$ev_MEXPLET = $lSiret [ 'insMEXPLET' ];
$ev_DREACTEN = $lSiret [ 'insDREACTEN' ];
}
$tmp = $iDb -> select ( 'jo.etablissements_act' , 'bilType, bilAnnee, bilTca, bilFL' , " siren= $siren LIMIT 0,1 " , false , MYSQL_ASSOC , false );
if ( count ( $tmp ) > 0 ) {
$tcaSED = $tmp [ 0 ][ 'bilTca' ];
$tcaSEDtype = $tmp [ 0 ][ 'bilType' ];
$tcaSEDannee = $tmp [ 0 ][ 'bilAnnee' ];
$tcaSEDmt = $tmp [ 0 ][ 'bilFL' ];
} else {
$tcaSED = ' ' ;
$tcaSEDtype = 'I' ;
$tcaSEDannee = '0000' ;
$tcaSEDmt = 0 ;
}
// @todo : Forcage pour idclient=3 nimes metropole !!!
2016-11-29 17:07:53 +01:00
if ( $prestaId == 'DIFINSPRDFTSA6CMONIMESMETRO' && $tcaSED <> ' ' ) {
$a [ 'TrancheCA' ] = $tcaSED ;
}
2016-04-07 10:58:03 +02:00
$tabRnvp = $iRnvp -> getAdresseRnvpSource ( 2 , $a [ 'SourceId' ]);
$codeRnvp = $tabRnvp [ 'CQAdrRnvp' ] * 1 ;
if ( $codeRnvp > 0 ) {
2016-11-29 17:07:53 +01:00
$L1rnvp = strtr ( $tabRnvp [ 'L1rnvp' ], '/*' , ' ' );
2016-04-07 10:58:03 +02:00
$L2rnvp = $tabRnvp [ 'L2rnvp' ];
$L3rnvp = $tabRnvp [ 'L3rnvp' ];
$L4rnvp = $tabRnvp [ 'L4rnvp' ];
$L5rnvp = $tabRnvp [ 'L5rnvp' ];
$L6rnvp = $tabRnvp [ 'L6rnvp' ];
$L7rnvp = $tabRnvp [ 'L7rnvp' ];
} elseif ( trim ( $a [ 'L1_NOMEN' ]) <> '' && trim ( $a [ 'L4_VOIE' ]) <> '' && trim ( $a [ 'L6_POST' ]) <> '' ) {
// On prend l'adresse RNVP origine INSEE (Syracuse)
2016-11-29 17:07:53 +01:00
$L1rnvp = strtr ( $a [ 'L1_NOMEN' ], '/*' , ' ' );
2016-04-07 10:58:03 +02:00
$L2rnvp = $a [ 'L2_COMP' ];
$L3rnvp = $a [ 'L3_CADR' ];
$L4rnvp = $a [ 'L4_VOIE' ];
$L5rnvp = $a [ 'L5_DISP' ];
$L6rnvp = $a [ 'L6_POST' ];
$L7rnvp = $a [ 'L7_ETRG' ];
} else {
// Historique Insee Notice 80
2016-11-29 17:07:53 +01:00
$L1rnvp = strtr ( $c [ 'L1_NOM' ], '/*' , ' ' );
2016-04-07 10:58:03 +02:00
$L2rnvp = $c [ 'L2_NOM2' ];
$L3rnvp = $c [ 'L3_ADRCOMP' ];
$L4rnvp = $c [ 'L4_VOIE' ];
$L5rnvp = $c [ 'L5_DISTSP' ];
$L6rnvp = $c [ 'L6_POST' ];
$L7rnvp = $c [ 'L7_PAYS' ];
}
// 1 (3) : Obligatoire CODE_ENTETE Ligne de description structurée de l'identité
2016-07-19 11:01:23 +02:00
$str = Metier_Util_String :: initstr ( 200 , 3 ) .
2016-04-07 10:58:03 +02:00
// 4 (10) : Obligatoire ID Numéro unique d'identification interne d'un établissement S&D
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'SourceId' ], 10 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire SIREN Siren de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $siren , 9 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (5) : Obligatoire NIC Nic de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $nic , 5 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (3) : Obligatoire SOURCE Source de la fiche d'identité
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Source' ], 3 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (1) : Obligatoire SIRETVALIDE Siren/siret valide
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $iInsee -> valideSiren ( $siren , $nic ), 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (10) : Facultatif NUMRCS Numéro de Registre du Commerce et des Sociétés
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'numRC' ], 10 ) .
2016-04-07 10:58:03 +02:00
// 14 (6) : Facultatif TRIBUNAL Identifiant du Tribunal
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Tribunal' ], 6 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire DATEMAJ Date de la dernière mise à jour dans la base S&D
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'dateMajIdentite' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // @todo : Erreur date 20150730 vs 20150803 ?
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire ACTIF Établissement juridiquement actif
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Actif' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire ACTIFECO Établissement économiquement actif
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'ActifEco' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire SITJUR Situation Juridique de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'SituationJuridique' ], 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EVE Dernier événement Insee recensé
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_EVE , 3 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DATEVE Date du dernier événement Insee recensé
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'DateMajINSEE' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TYPETAB Type d'établissement concerné par l'événement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_TYPETAB , 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire SIEGE Établissement siège, secondaire ou principal
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Siege' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire NOM Raison Sociale
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Nom' ], 160 ) . // @todo : pas de raison sociale sur certaines entités
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif NOMCOM Nom commercial
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'NomCommercial' ], 160 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ENSEIGNE Enseigne de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Enseigne' ], 80 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif SIGLE sigle de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Sigle' ], 40 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ADR_NUMVOIE Numéro dans la voie
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AdresseNum' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ADR_BTQ Indicateur de répétition (Bis, Ter, etc...)
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AdresseBtq' ], 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ADR_TYPVOIE Type de voie
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AdresseVoie' ], 4 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire ADR_LIBVOIE Libellé de la voie
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AdresseRue' ], 32 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire ADR_LIBCOM Commune
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Ville' ], 32 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire ADR_CP Code postal
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'CP' ], 5 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ADR_COMP Complément d'adresse
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Adresse2' ], 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ADR_DISTSP Distribution spéciale
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( '' , 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PAYS Pays
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Pays' ], 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PAYSISO2 Code Pays au format ISO2
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'PaysIso2' ], 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire ADR_DEP Département de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Dept' ], 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire ADR_COM Code commune de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'codeCommune' ], 3 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CODEVOIE Code voie de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( ' ' , '' , $a [ 'Rivoli' ]), 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CODEIRIS Code Iris de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'codIris' ], 4 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CODEILOT Code Ilot de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( '' , 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ADRESSEDOM Indicateur d'adresse de domiciliation
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AdresseDom' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TEL Numéro de téléphone
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Tel' ], 15 ) . // @todo : Différence dans les téléphones ou absent
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif FAX Numéro de télécopie
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Fax' ], 15 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif WEB Site Web
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Web' ], 80 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif MAIL Adresse Email de contact générique
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Mail' ], 80 ) . // @todo : Absence email
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif AUXILT Auxiliarité de l'activité de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Auxiliaire' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif SAISONAT Saisonnalité de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Saisonnalite' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ACTIVNAT Nature de l'activité de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'NatureActivite' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// P 922 - L 2 : Facultatif ORIGINE Origine de la création de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'OrigineCreation' ], 2 ) . // @todo : aberrant 2 cas
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TYPEXPLOIT Type d'exploitation
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'TypeExploitation' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif LIEUACT Lieu de l'activité de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'LIEUACT' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ACTISURF Type de magasin
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'ACTISURF' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PRODPART Participation particulière à la production de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'PRODPART' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ARRONET Arrondissement de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insARRONET' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CTONET Canton
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insCTONET' ], 3 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TCD Tranche de commune détaillée
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insTCD' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ZEMET Zone d'emploi
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insZEMET' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DU Département de l'unité urbaine de localisation
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insDU' ], 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TU Taille de l'unité urbaine
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insTU' ], 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif UU Numéro de l'untié urbaine
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insUU' ], 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DCRET Date de création de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'DateCreaEt' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire APE_ETAB Code activité dans la NAF rév2 de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'NafEtab' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif NACE_ETAB Code activité NACE de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'NaceEtab' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DAPET Année de validité de l'activité principale de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( 0 , 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EFF_ET Effectif de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'EffectifEtab' ], 7 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TEFF_ET Tranche d'effectif de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'EffEtTr' ], 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DEFET Année de mise à jour de l'effectif établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AnneeEffEt' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif MODET Modalité de l'activité pricipale de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( '' , 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EXPLET Etablissement exploitant tout ou partie des moyens de production
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'EXPLET' ], 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif RPET Région de localisation de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insRPET' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DREACTET Date de réactivation de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , 0 ), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DATEFERET Date de fermeture de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , 0 ), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EAEANT Année de validité des rubriques de niveau Etab provenant des EAE*
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAEANT' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EAEAPET Activité principale de l'établissement issue des EAE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAEAPET' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EAESEC1T Activité secondaire de l'établissement issue des EAE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAESEC1T' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EAESEC2T Autre activité secondaire de l'établissement issue des EAE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAESEC2T' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DCREN Date de création de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'DateCreaEn' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire APE_ENT Code activité dans la NAF rév2 de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'NafEnt' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif NACE_ENT Code activité NACE de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'NaceEnt' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DAPEN Année de validité de l'activité principale de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( 0 , 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EFF_ENT Effectif de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Effectif' ], 7 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TEFF_ENT Tranche d'effectif de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'EffEnTr' ], 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DEFEN Année de mise à jour de l'effectif entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AnneeEffEn' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif MODEN Modalité de l'activité pricipale de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'MODEN' ], 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EXPLEN Entreprise exploitant tout ou partie des moyens de production
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'EXPLEN' ], 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif RPEN Région de localisation du siège de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insRPEN' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DREACTEN Date de réactivation de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $ev_DREACTEN ), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DATEFEREN Date de fermeture de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $ev_DATEFEREN ), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DATEIMMAT Date d'immatriculation de l'entreprise au RCS
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'dateImmat' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif DATERAD Date de radiation de l'entreprise du RCS
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'dateRad' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CAPITAL Montant du capital de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Capital' ], 15 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CAPITALTYPE Type de capital
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'CapitalType' ], 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CAPITALDEV Devise du capital
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'CapitalDev' ], 3 ) .
2016-04-07 10:58:03 +02:00
// P 1109 - L 4 : Obligatoire, CJ Catégorie Juridique de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'FJ' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // @todo non definie
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CIVILITE Civilité de l'entreprise si Personne Physique
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Civilite' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif NBETAB Nombre d'établissements actifs de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'NbEtab' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TCA Tranche de chiffre d'affaire
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'TrancheCA' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TCAEXP Tranche de chiffre d'affaire à l'export
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'TrancheCAexp' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif APRM Activité principale au registre des métiers
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'APRM' ], 6 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif MONOREG Mono-régionalité de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'MONOREG' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif REGIMP Principale région d'implantation de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'REGIMP' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif MONOACT Mono-activité de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'MONOACT' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif NICSIEGE Nic de l'établissement siège
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( substr ( $a [ 'SiretSiege' ], - 5 ), 5 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif RECME Répertoire des Entreprises Contrôlées Majoritairement par l'État
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'RECME' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif SIRETLIE Siret lié : prédécesseur, successeur, doublon, autre
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_SIRETLIE , 14 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif SIRETLIETYPE Type de sitet lié
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_SIRETLIETYPE , 1 ) .
2016-04-07 10:58:03 +02:00
// 1151 (5) : Facultatif NICPREC Nic de l'établissement prédécesseur (dans le cadre d'un transfert)
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AutreSiret' ][ 'pre' ][ 'nic' ], 5 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // @todo non definie
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif NICSUIV Nic de l'établissement successeur (dans le cadre d'un transfert)
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AutreSiret' ][ 'suc' ][ 'nic' ], 5 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // @todo non definie
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insDESTINAT Destination Insee
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_DESTINAT , 2 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insDEPCOMEN Code commune Insee du siège de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insDEPCOMEN' ], 5 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMNICSIEGE Indicateur de MAJ du NIC SIEGE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MNICSIEGE , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMNOMEN Indicateur de MAJ de la Raison Sociale
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MNOMEN , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMCJ Indicateur de MAJ de la Forme Juridique
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MCJ , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMAPEN Indicateur de MAJ du NAF entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MAPEN , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMENSEIGNE Indicateur de MAJ de l'ENSEIGNE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MENSEIGNE , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMAPET Indicateur de MAJ du NAF établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MAPET , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMADRESSE Indicateur de MAJ de l'ADRESSE de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MADRESSE , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMAUXILT Indicateur de MAJ de l'AUXILIARITE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MAUXILT , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMSIGLE Indicateur de MAJ du SIGLE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MSIGLE , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMEXPLEN Indicateur de MAJ du caractère EXPLOITANT entrep
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MEXPLEN , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif insMEXPLET Indicateur de MAJ du caractère EXPLOITANT étab
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $ev_MEXPLET , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ADR_RNVP Type de Prestation RNVP si RNVP
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $codeRnvp , 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif L1_nomen Ligne 1 : Nom de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $L1rnvp , 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif L2_COMP Ligne 2 : Complément de nom
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $L2rnvp , 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif L3_CADR Ligne 3 : Complément d'adresse
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $L3rnvp , 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif L4_VOIE Ligne 4 : Adresse
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $L4rnvp , 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif L5_DISP Ligne 5 : Distribution spéciale
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $L5rnvp , 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif L6_POST Ligne 6 : Code Postal, commune, etc..
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $L6rnvp , 38 ) .
Metier_Util_String :: initstr ( $L7rnvp , 38 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EAEANN Année de validité des rubriques de niveau ENTREP provenant des EAE*
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAEANN' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif EAEAPEN Activité principale de l'entreprise issue des EAE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAEAPEN' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif inseaesec1n Activité secondaire n°1 de l'entreprise issue des EAE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAESEC1N' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif inseaesec2n Activité secondaire n°2 de l'entreprise issue des EAE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAESEC2N' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif inseaesec3n Activité secondaire n°3 de l'entreprise issue des EAE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAESEC3N' ], 5 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif inseaesec4n Activité secondaire n°4 de l'entreprise issue des EAE
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $b [ 'insEAESEC4N' ], 5 ) .
2016-04-07 10:58:03 +02:00
// P 1475 - L 12 : Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984)
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoLat' ], 12 , ' ' , Metier_Util_String :: ALIGN_RIGHT ) . // @todo : format
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984)
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoLon' ], 12 , ' ' , Metier_Util_String :: ALIGN_RIGHT ) . // @todo : format
2016-04-07 10:58:03 +02:00
// P 1499 - L 1 : Facultatif GPSP Niveau de précision du géocodage
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoPrecis' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // @todo : format
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ZUS Identifiant de la Zone Urbaine Sensible
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoInfos' ][ 'NZUS' ], 10 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ZRU Identifiant de la Zone de Rénovation Urbaine
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoInfos' ][ 'NZRU' ], 10 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ZFU Identifiant de la Zone Franche Urbaine
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoInfos' ][ 'NZFU' ], 10 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CUCS Identifiant de la Zone Contrat Urbain de Cohésion Social
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoInfos' ][ 'NCUCS' ], 10 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif AFR Identifiant de la Zone AFR
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoInfos' ][ 'NAFR' ], 10 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif ZRR Identifiant de la ZRR
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'GeoInfos' ][ 'NZRR' ], 10 ) .
2016-04-07 10:58:03 +02:00
// P 160 - L 15 Facultatif TVA Numéro de TVA Intracommunataire
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'TvaNumero' ], 15 ) .
2016-04-07 10:58:03 +02:00
// P 1575 - L 1 : Facultatif TVAVALIDE Numéro de TVA validé
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'TvaAttribue' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// P 1576 - L 1 : Facultatif ANCIENSIEGE Ancien siège
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'AncienSiege' ], 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif CODEISIN Code ISIN de l'entreprise si cotation en bourse
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Isin' ], 12 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR1NOM Nom du principal dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir1Nom' ], 40 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR1PRENOM Prénom du principal dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( preg_replace ( '/,?\s.*$/' , '' , $a [ 'dir1Prenom' ]), 30 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir1NomUsage' ], 40 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR1DNAISS Date de naissance
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'dir1DateNaiss' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR1LNAISS Lieu de Naissance
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir1LieuNaiss' ], 35 ) .
2016-04-07 10:58:03 +02:00
// P 1742 - L 4 : Facultatif PPDIR1FONC Code Fonction
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir1Code' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // @todo : Pas les mêmes code - correction dans lib
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR1MAJ Date de MAJ du ppl dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'dir1DateFct' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR2NOM Nom du seconde principal dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir2Nom' ], 40 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( preg_replace ( '/,?\s.*$/' , '' , $a [ 'dir2Prenom' ]), 30 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir2NomUsage' ], 40 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'dir2DateNaiss' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR2LNAISS Lieu de Naissance du 2ème ppl dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir2LieuNaiss' ], 35 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR2FONC Code Fonction du 2ème ppl dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir2Code' ], 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif PPDIR2MAJ Date de MAJ du 2ème ppl dirigeant
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'dir2DateFct' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif BILANCLOT Date de dernière clôture de bilan disponible
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $a [ 'bilanDate' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif BILANDUREE Durée du dernier exercice disponible
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'bilanMois' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif BILANCA Chiffre d'affaires au dernier bilan disponible
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $tcaSEDmt , 15 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif BILANRES Résultat au dernier bilan disponible
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'bilanHN' ], 15 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Tranche de CA SED
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $tcaSED , 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Type de tranche de CA : (R)éel, (I)nconnu ou (E)stimé
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $tcaSEDtype , 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Année du CA
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $tcaSEDannee , 4 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : PPDIR1 Genre
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir1Genre' ], 1 ) . // @todo : De temps en temps non délivrés
2016-04-07 10:58:03 +02:00
// 14 (9) : PPDIR2 Genre
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'dir2Genre' ], 1 ) . // @todo : De temps en temps non délivrés
2016-04-07 10:58:03 +02:00
// 14 (9) : Indicateur du champ de publipostage
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'IND_PUBLIPO' ] * 1 , 1 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif FILLER1 Zone libre
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( ' ' , 32 ) ;
2016-04-07 10:58:03 +02:00
/*
AnneeTCA
CapitalNbActions
CapitalMtActions
*/
// --- Ecriture ligne 200
if ( $opts -> debug && mb_strlen ( $str ) > LONGUEUR_LIGNE_SORTIE ) {
echo date ( 'Y-m-d H:i:s' ) . " - Ligne supérieur à LONGUEUR MAX " ;
}
2016-11-29 17:07:53 +01:00
file_put_contents ( $filepath , Metier_Util_String :: initstr ( $str , LONGUEUR_LIGNE_SORTIE ) . $OptionEOL , FILE_APPEND );
2016-04-07 10:58:03 +02:00
$nbLignes ++ ;
$nbLignes200 ++ ;
$mBil = new Metier_Partenaires_MBilans ( $siren );
$tabBilans = $mBil -> listeBilans ();
$iBil = 0 ;
if ( $OptionNbBilansMax > 0 ) {
foreach ( $tabBilans as $idxBilan => $derBilan ) {
$iBil ++ ;
$t5 = microtime ( 1 );
2016-11-29 17:07:53 +01:00
$p = $mBil -> getBilan ( Metier_Util_Date :: dateT ( 'Ymd' , 'd/m/Y' , $derBilan [ 'dateExercice' ]), $derBilan [ 'typeBilan' ]);
2016-04-07 10:58:03 +02:00
$t6 = microtime ( 1 );
$tTime [ 'Bilan' ] += $t6 - $t5 ;
//print_r($p);
2016-11-29 17:07:53 +01:00
if ( $p [ 'CONSOLIDE' ] == 'S' ) {
$numLiasse = '2033' ;
} else {
$numLiasse = '2050' ;
}
2016-04-07 10:58:03 +02:00
$unite = strtoupper ( $p [ 'MONNAIE_LIV_UNITE' ]);
2016-11-29 17:07:53 +01:00
if ( $unite == '' ) {
$unite = 'U' ;
}
2016-04-07 10:58:03 +02:00
$nbLignesBil ++ ;
// 14 (9) : Obligatoire CODE_ENTETE Ligne de description structurée de l'identité
2016-11-29 17:07:53 +01:00
$strIni = Metier_Util_String :: initstr ( $OptionTypeLigneBilan , 3 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire ID Numéro unique d'identification interne d'un établissement S&D
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'SourceId' ], 10 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire SIREN Siren de l'entreprise
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $siren , 9 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire NIC Nic de l'établissement
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $nic , 5 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire SOURCE Source de la fiche d'identité
2016-07-19 11:06:10 +02:00
Metier_Util_String :: initstr ( $a [ 'Source' ], 3 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Obligatoire SIRETVALIDE Siren/siret valide
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $iInsee -> valideSiren ( $siren , $nic ), 1 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif NUMRCS Numéro de Registre du Commerce et des Sociétés
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'numRC' ], 10 ) .
2016-04-07 10:58:03 +02:00
// 14 (9) : Facultatif TRIBUNAL Identifiant du Tribunal
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $a [ 'Tribunal' ], 6 ) .
2016-04-07 10:58:03 +02:00
// DATEMAJ Date de la dernière mise à jour du bilan dans la base S&D Format AAAAMMJJ
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $p [ 'DATE_FRAICHE_BILAN' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// MILLESIME Année du bilan
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( substr ( $p [ 'DATE_FRAICHE_BILAN' ], 0 , 4 ), 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// BILAN_DATE Date de clôture du bilan Format AAAAMMJJ
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $p [ 'DATE_CLOTURE' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// BILAN_DUREE Durée de l'exercice en mois
2016-07-19 11:06:10 +02:00
Metier_Util_String :: initstr ( $p [ 'DUREE_MOIS' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// BILAN_DATEP Date de clôture du bilan précédent Format AAAAMMJJ
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( str_replace ( '-' , '' , $p [ 'DATE_CLOTURE_PRE' ]), 8 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// BILAN_DUREEP Durée de l'exercice précédent en mois
2016-07-19 11:06:10 +02:00
Metier_Util_String :: initstr ( $p [ 'DUREE_MOIS_PRE' ], 2 , '0' , Metier_Util_String :: ALIGN_RIGHT ) .
2016-04-07 10:58:03 +02:00
// BILAN_LIASSE Numéro de la première liasse du bilan 2033,2050
2016-11-29 17:07:53 +01:00
Metier_Util_String :: initstr ( $numLiasse , 4 ) .
2016-04-07 10:58:03 +02:00
// BILAN_TYPE Type de bilan S=Réel Normal Simplifié, C=Consolidé, N=Réel Normal
2016-07-19 11:01:23 +02:00
Metier_Util_String :: initstr ( $p [ 'CONSOLIDE' ], 1 ) .
2016-04-07 10:58:03 +02:00
// BILAN_MONNAIE Code devise de livraison selon la norme ISO 4217 (3 lettres)
2016-07-19 11:01:23 +02:00
Metier_Util_String :: initstr ( $p [ 'MONNAIE' ], 3 ) .
2016-04-07 10:58:03 +02:00
// BILAN_MONNAIEO Code devise d'origine du bilan selon la norme ISO 4217*
2016-07-19 11:01:23 +02:00
Metier_Util_String :: initstr ( $p [ 'MONNAIE_ORI' ], 3 ) .
2016-04-07 10:58:03 +02:00
// BILAN_UNITE Unité du bilan livré U=en unité de devise, K=en milliers, M=en millions
2016-07-19 11:01:23 +02:00
Metier_Util_String :: initstr ( $unite , 1 );
2016-04-07 10:58:03 +02:00
unset ( $p [ 'SIREN' ]);
unset ( $p [ 'SOURCE' ]);
unset ( $p [ 'devise' ]);
unset ( $p [ 'DATE_FRAICHE_BILAN' ]);
unset ( $p [ 'DATE_CLOTURE' ]);
unset ( $p [ 'DATE_CLOTURE_PRE' ]);
unset ( $p [ 'DUREE_MOIS' ]);
unset ( $p [ 'DUREE_MOIS_PRE' ]);
unset ( $p [ 'MONNAIE' ]);
unset ( $p [ 'CONSOLIDE' ]);
unset ( $p [ 'MONNAIE_ORI' ]);
unset ( $p [ 'MONNAIE_LIV_UNITE' ]);
2016-07-19 11:06:10 +02:00
$strIni .= Metier_Util_String :: initstr ( count ( $p ), 4 , '0' , Metier_Util_String :: ALIGN_RIGHT ); // BILAN_NBPOSTES Nombre de postes livrés
2016-04-07 10:58:03 +02:00
$nbP = 0 ;
$strP = '' ;
if ( $OptionTypeLigneBilan == 400 ) {
foreach ( $p as $code => $valeur ) {
$nbP ++ ;
2016-11-29 17:07:53 +01:00
if ( $valeur >= 0 ) {
$signe = '+' ;
} else {
$signe = '-' ;
}
2016-07-19 11:06:10 +02:00
$strP .= Metier_Util_String :: initstr ( $code , 4 ) . $signe . Metier_Util_String :: initstr ( abs ( $valeur ), 20 , '0' , Metier_Util_String :: ALIGN_RIGHT );
2016-11-29 17:07:53 +01:00
if ( $nbP < 76 ) {
continue ;
}
2016-04-07 10:58:03 +02:00
// --- Ecriture ligne 400
2016-11-29 17:07:53 +01:00
file_put_contents ( $filepath , Metier_Util_String :: initstr ( $strIni . $strP , LONGUEUR_LIGNE_SORTIE ) . $OptionEOL , FILE_APPEND );
2016-04-07 10:58:03 +02:00
$nbLignes ++ ;
$nbLignesBil ++ ;
2016-11-29 17:07:53 +01:00
$nbP = 0 ;
$strP = '' ;
2016-04-07 10:58:03 +02:00
}
2016-11-29 17:07:53 +01:00
if ( $nbP < 76 ) { // Ecriture de la dernière ligne sauf s'il y a dejà 76 postes
2016-04-07 10:58:03 +02:00
// --- Ecriture ligne 400
2016-11-29 17:07:53 +01:00
file_put_contents ( $filepath , Metier_Util_String :: initstr ( $strIni . $strP , LONGUEUR_LIGNE_SORTIE ) . $OptionEOL , FILE_APPEND );
2016-04-07 10:58:03 +02:00
$nbLignes ++ ;
$nbLignesBil ++ ;
}
} else {
$uniteMultiple = 1 ;
switch ( strtoupper ( $unite )) {
2016-11-29 17:07:53 +01:00
case 'K' : $uniteMultiple = 1000 ; break ;
case 'M' : $uniteMultiple = 1000000 ; break ;
}
if ( $p [ 'CONSOLIDE' ] == 'S' ) {
$tabPostes = $iBilan -> bilanSimplifie2Normal ( $p );
} else {
$tabPostes = $p ;
2016-04-07 10:58:03 +02:00
}
// Chiffre d'affaires - Poste FL au format 2050
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'FL' ]);
2016-04-07 10:58:03 +02:00
// Chiffre d'affaires Export - Poste FK
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'FK' ]);
2016-04-07 10:58:03 +02:00
// Valeur Ajoutée - R130 = FL + FM+FN - (FS+FU) - (FT+FV) - (FW-HP-HQ)
$va = $p [ 'FL' ] + $p [ 'FM' ] + $p [ 'FN' ] - ( $p [ 'FS' ] + $p [ 'FU' ]) - ( $p [ 'FT' ] + $p [ 'FV' ]) - ( $p [ 'FW' ] - $p [ 'HP' ] - $p [ 'HQ' ]);
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $va );
2016-04-07 10:58:03 +02:00
// Masse salariale - R132 = FY + FZ
$ms = $p [ 'FY' ] + $p [ 'FZ' ];
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $ms );
2016-04-07 10:58:03 +02:00
// EBE - R140 = R130-R132 - FX + FO
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $va - $ms - $p [ 'FX' ] + $p [ 'FO' ]);
2016-04-07 10:58:03 +02:00
// Personnel extérieur à l'entreprise, Intérim = Poste YU
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'YU' ]);
2016-04-07 10:58:03 +02:00
// Sous-traitance
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'YT' ]);
2016-04-07 10:58:03 +02:00
// Effectif
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'YP' ]);
2016-04-07 10:58:03 +02:00
// Capital - Poste DA
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'DA' ]);
2016-04-07 10:58:03 +02:00
// Montant des Immo. Corp. Terrains Brut Poste AN
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'AN' ]);
2016-04-07 10:58:03 +02:00
// Montant des Immo. Corp. Constructions Poste AP
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'AP' ]);
2016-04-07 10:58:03 +02:00
// Montant des Installations Techniques, matériel et outillage industriels Poste AR
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'AR' ]);
2016-04-07 10:58:03 +02:00
// Montant des Immo. Corp. Brut =AN+AP+AR+AT+AV+AX
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'AN' ] + $p [ 'AP' ] + $p [ 'AR' ] + $p [ 'AT' ] + $p [ 'AV' ] + $p [ 'AX' ]);
2016-04-07 10:58:03 +02:00
// Montant des Immo. Corp. Net =AN-AO + AP-AQ + AR-AS + AT-AU + AV-AW + AX-AY
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'AN' ] - $p [ 'AO' ] + $p [ 'AP' ] - $p [ 'AQ' ] + $p [ 'AR' ] - $p [ 'AS' ] + $p [ 'AT' ] - $p [ 'AU' ] + $p [ 'AV' ] - $p [ 'AW' ] + $p [ 'AX' ] - $p [ 'AY' ]);
2016-04-07 10:58:03 +02:00
// Montant des Immo. Incorp. Brut =AB+AD+AF+AH+AJ+AL
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'AB' ] + $p [ 'AD' ] + $p [ 'AF' ] + $p [ 'AH' ] + $p [ 'AJ' ] + $p [ 'AL' ]);
2016-04-07 10:58:03 +02:00
// Montant des Immo. Incorp. Net =AB-AC + AD-AE + AF-AG + AH-AI + AJ-AK + AL-AM
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'AB' ] - $p [ 'AC' ] + $p [ 'AD' ] - $p [ 'AE' ] + $p [ 'AF' ] - $p [ 'AG' ] + $p [ 'AH' ] - $p [ 'AI' ] + $p [ 'AJ' ] - $p [ 'AK' ] + $p [ 'AL' ] - $p [ 'AM' ]);
2016-04-07 10:58:03 +02:00
// Montant des Taxe professionnelle Poste YW
2016-11-29 17:07:53 +01:00
$strP .= @ exporteRatio ( $p [ 'YW' ]);
2016-04-07 10:58:03 +02:00
// --- Ecriture ligne
2016-11-29 17:07:53 +01:00
file_put_contents ( $filepath , Metier_Util_String :: initstr ( $strIni . $strP , LONGUEUR_LIGNE_SORTIE ) . $OptionEOL , FILE_APPEND );
2016-04-07 10:58:03 +02:00
$nbLignes ++ ;
$nbLignesBil ++ ;
$strP = '' ;
}
2016-11-29 17:07:53 +01:00
if ( $iBil == $OptionNbBilansMax ) {
break ;
}
2016-04-07 10:58:03 +02:00
}
}
if ( empty ( $opts -> debug )) {
$suiviM -> update ( array (
'unitIncrement' => $unit ,
2015-07-27 20:47:19 +00:00
'unitExec' => date ( 'YmdHis' ),
2016-04-07 10:58:03 +02:00
), 'id=' . $suiviId );
}
2016-11-29 17:07:53 +01:00
echo date ( 'Y/m/d - H:i:s' ) . " - Fin ligne $unit / $nbEtab\n " ;
2016-04-07 10:58:03 +02:00
}
// --- Fin de ligne du fichier
$nbLignes ++ ;
$dateFin = date ( 'YmdHis' );
2016-11-29 17:07:53 +01:00
$str = Metier_Util_String :: initstr ( '999' , 3 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // Type de ligne
Metier_Util_String :: initstr ( $dateFin , 14 ) . // Date & Heure de fin génération du fichier
Metier_Util_String :: initstr ( $OptionClientNumTourFichier , 10 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // Numéro de tour du fichier pour le client
Metier_Util_String :: initstr ( $prestaId , 36 ) . // Identifiant Client
Metier_Util_String :: initstr ( $OptionTypePrestation , 32 ) . // Type de prestation
Metier_Util_String :: initstr ( $nbLignes , 10 , '0' , Metier_Util_String :: ALIGN_RIGHT ) . // Nombre de lignes Total du fichier
2016-04-07 10:58:03 +02:00
'' ;
// Pas de fin de ligne sur la dernière ligne
2016-11-29 17:07:53 +01:00
file_put_contents ( $filepath , Metier_Util_String :: initstr ( $str , LONGUEUR_LIGNE_SORTIE ), FILE_APPEND );
2016-04-07 10:58:03 +02:00
$tabProduction [ $prestaId ][ 'dateFin' ] = $dateFin ;
2016-11-29 17:07:53 +01:00
$duree = round ( microtime ( true ) - $timeDeb , 3 );
2016-04-07 10:58:03 +02:00
$dureeD = floor ( $duree / 86400 );
$reste = $duree % 86400 ;
$dureeH = floor ( $reste / 3600 );
$reste = $reste % 3600 ;
$dureeM = floor ( $reste / 60 );
$dureeS = $reste % 60 ;
$tabProduction [ $prestaId ][ 'duree' ] = $duree . ' secondes' ;
2016-11-29 17:07:53 +01:00
if ( $dureeD == 0 && $dureeH == 0 ) {
$tabProduction [ $prestaId ][ 'dureeLisible' ] = " $dureeM m. $dureeS s. " ;
} elseif ( $dureeD == 0 ) {
$tabProduction [ $prestaId ][ 'dureeLisible' ] = " $dureeH h. $dureeM m. $dureeS s. " ;
} else {
$tabProduction [ $prestaId ][ 'dureeLisible' ] = " $dureeD j. $dureeH h. $dureeM m. $dureeS s. " ;
}
2016-04-07 10:58:03 +02:00
$tabProduction [ $prestaId ][ 'nbLignes' ] = $nbLignes ;
2016-11-29 17:07:53 +01:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation $prestaId , Client $OptionNomClient : Fichier client terminé. \n " ;
2016-04-07 10:58:03 +02:00
// --- Envoi du fichier produit par mail
if ( ! empty ( $OptionMailTo )) {
$OptionMailTo .= ',' ;
}
$OptionMailTo .= 'suivi@scores-decisions.com' ;
if ( $opts -> nomail === null && ! empty ( $OptionMailTo )) {
$tabAttached = array ( $filepath );
$messageInfo = " Bonjour,
Veuillez trouver le fichier d ' établissements Scores & Décisions relatifs à votre abonnement .
Bien Cordialement ,
Le service Support .
ATTENTION : Cet email est un message automatique . Merci de ne pas y répondre . Pour toute question nous vous invitons à contacter notre support à l ' adresse support @ scores - decisions . com .
---
SCORES & DECISIONS
Service support
1 , rue de Clairefontaine - 78120 RAMBOUILLET
tél : 33 ( 0 ) 1 75 43 80 10
fax : 33 ( 0 ) 1 75 43 85 74
support @ scores - decisions . com
http :// www . scores - decisions . com /
Scores & Décisions est l 'acteur nouvelle génération de l' information et de l ' évaluation des entreprises
Pensez à l 'environnement avant d' imprimer ce message !
Save paper - think before you print " ;
2016-07-19 11:01:23 +02:00
$mail = new Metier_Util_Mail ();
2016-11-29 17:07:53 +01:00
if ( $mail -> send ( 'production@scores-decisions.com' , $OptionMailTo , " Diffusion A6CMO S&D " , $messageInfo , '' , $tabAttached )) {
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation $prestaId , Client $OptionNomClient : Fichier envoyé à " . $OptionMailTo . " \n " ;
2016-04-07 10:58:03 +02:00
} else {
2016-11-29 17:07:53 +01:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation $prestaId , Client $OptionNomClient : Erreur lors de l'envoi du fichier à " . $OptionMailTo . " \n " ;
2016-04-07 10:58:03 +02:00
}
} else {
}
if ( empty ( $opts -> debug )) {
$suiviparamM = new Application_Model_Sdv1PrestaOutDetail ();
$suiviparamM -> insert ( array (
'execId' => $suiviId ,
'code' => $prestaId ,
'name' => 'fichier' ,
2015-07-27 20:47:19 +00:00
'value' => $file ,
2016-04-07 10:58:03 +02:00
));
$suiviM -> update ( array ( 'dateEnd' => date ( 'YmdHis' )), 'id=' . $suiviId );
}
2016-11-29 17:07:53 +01:00
echo date ( 'Y/m/d - H:i:s' ) . " - Prestation $prestaId , Client $OptionNomClient : Fin. \n " ;
2016-04-07 10:58:03 +02:00
} // --- Fin boucle presta
2016-11-29 17:07:53 +01:00
if ( $opts -> stock ) {
$strStock = " des stocks " ;
} else {
$strStock = " des fichiers hebdos " ;
}
2016-04-07 10:58:03 +02:00
$messageFinObj = " FIN de la diffusion $strStock A6CMO " ;
$messageFinMsg = print_r ( $tabProduction , true );
$messageFinMsg .= print_r ( $tTime , true );
if ( $opts -> nomail === null ) {
2016-07-19 11:01:23 +02:00
$mail = new Metier_Util_Mail ();
$mail -> send ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com,suivi@scores-decisions.com' , $messageFinObj , $messageFinMsg );
2016-04-07 10:58:03 +02:00
}
2016-11-29 17:07:53 +01:00
function exporteRatio ( $valeur )
{
2016-04-07 10:58:03 +02:00
$signe = '+' ;
2016-11-29 17:07:53 +01:00
if ( $valeur < 0 ) {
$signe = '-' ;
}
return '' . $signe . Metier_Util_String :: initstr ( abs ( $valeur ), 20 , '0' , Metier_Util_String :: ALIGN_RIGHT );
2016-04-07 10:58:03 +02:00
}