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

1123 lines
69 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
if (!defined('VERSION_FICHIER_IDENTITE'))
define('VERSION_FICHIER_IDENTITE','0106');
/**
* @todo
* 2. Pouvoir faire du multiligne avec : 106 Libellé du Périmètre de la vente
* 5. JugesCommissaires à intégrer correctement
*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'conversion/bilAltares.php');
include_once(FWK_PATH.'mail/sendMail.php');
$optionEOL=EOL;
$stock=$dateDebut=$idClientTodo=false;
$dateDebutCmd=false;
$tabPrestas=array(
0=>array(
'nomClient'=> 'ComComMuretain',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOMURETAIN',
'clientNumTourFichier'=>4,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=> '31165,31248,31253,31287,31395,31421,31420,31433,31460,31475,31486,31499,31533,31580',
'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,'.
'7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,'.
'7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'mailTo'=> 'economie@agglo-muretain.fr,jean.louis.bouttier@agglo-muretain.fr,ylenaour@scores-decisions.com',
),
1=>array(
'nomClient'=> 'CAMontauban',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOMONTAUBAN',
'clientNumTourFichier'=>1,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=> '82121,82025,82124,82044,82195,82167,82001,82090',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1800,2700,3110,3205,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=> 'gaguade@ville-montauban.fr,ylenaour@scores-decisions.com',
),
2=>array(
'nomClient'=> 'CAHeninCarvin',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOHENINCARVIN',
'clientNumTourFichier'=>1,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=> '62148,62215,62249,62250,62274,62277,62321,62427,62497,62587,62624,62637,62724,62907',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
//'mailTo'=>'gaguade@ville-montauban.fr,support@scores-decisions.com',
//'mailTo'=> 'ylenaour@scores-decisions.com',
),
3=>array(
'nomClient'=> 'CANimesMetropole',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMONIMESMETRO',
'clientNumTourFichier'=>1,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=> '30047,30189,30060,30125,30169,30075,30156,30189,30061,30155,30211,30356,30128,30138,30145,30245,30036,30039,30082,30249,30206,30057,30257,30241,30102,30228,30317',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=> 'pierre.rouzet@ville-nimes.fr,ylenaour@scores-decisions.com',
),
4=>array(
'nomClient'=> 'ADACL40MACS',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOADACL40MACS',
'clientNumTourFichier'=>1,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=> '40004,40021,40036,40065,40129,40133,40168,40181,40187,40213,40261,40264,40271,40272,40284,40291,40292,40293,40296,40304,40310,40317,40328',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'freqenvois'=>'M', // H:Hebdo, M=Mensuel
'mailTo'=> 'lestanguet.celluleprojet@adacl40.fr,ylenaour@scores-decisions.com',
),
5=>array(
'nomClient'=> 'CATerresDeFrance',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOCATDF',
'clientNumTourFichier'=>1,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=> '93071,93078,93073',
'CJ'=>'3110,3120,4110,4120,4130,4140,4150,4160,5191,5192,5193,5194,5195,5196,5202,5203,5306,5307,5308,5309,5385,5410,5415,5422,5426,5430,5431,5432,5442,5443,5451,5453,5454,5455,5458,5459,5460,5485,5498,5499,5505,5510,5515,5520,5522,5525,5530,5531,5532,5542,5543,5546,5547,5548,5551,5552,5553,5554,5555,5558,5559,5560,5585,5599,5605,5610,5615,5620,5622,5625,5630,5631,5632,5642,5643,5646,5647,5648,5651,5652,5653,5654,5655,5658,5659,5660,5685,5699,5710,5720,5785,5800,6100,6210,6220,6316,6317,6318,6411,6521,6532,6533,6534,6535,6536,6537,6538,6539,6540,6541,6542,6543,6551,6554,6558,6560,6561,6562,6563,6564,6565,6566,6567,6568,6569,6571,6572,6573,6574,6575,6576,6577,6578,6585,6588,6589,6595,6596,6597,6598,6599,6901',
//'mailTo'=> 'ylenaour@scores-decisions.com,cendrine.lebouffant@caterresdefrance.fr',
),
6=>array(
'nomClient'=> 'CACLichyMontf',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOCLICHYM',
'clientNumTourFichier'=>1,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=> '93014,93047',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=> 'julien.aumand@cacm93.fr,jrose.louisds@cacm93.fr,ylenaour@scores-decisions.com',
),
7=>array(
'nomClient'=> 'CAEvryCentreEssonne',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOEVRYCE',
'clientNumTourFichier'=>1,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=> '91086,91182,91228,91340,91521,91659',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1700,1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=> 'ylenaour@scores-decisions.com,damien.le.mee@agglo-evry.fr',
),
8=>array(
'nomClient'=> 'CASQY',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOSQY',
'clientNumTourFichier'=>1,
'nbBilansMax'=>0,
'typeLigneBilan'=>401,
'CodeCom'=> '8208,78297,78356,78423,78621,78644,78688',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=> 'ylenaour@scores-decisions.com,Jonathan.CRUSSON@agglo-sqy.fr',
),
9=>array(
'nomClient'=> 'ComValenton',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOVALENTON',
'clientNumTourFichier'=>1,
'nbBilansMax'=>0,
'typeLigneBilan'=>401,
'CodeCom'=>94074,
'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=>'ali.laouari@ville-valenton.fr,ylenaour@scores-decisions.com',
),
10=>array(
'nomClient'=> 'ComComVallonsTour',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOVALLONS',
'clientNumTourFichier'=>1,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=>'38064,38148,38162,38076,38509,38296,38341,38377,38381,38401',
'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=>'thomas.boisseau@lesvallonsdelatour.fr,ylenaour@scores-decisions.com',
),
11=>array(
'nomClient'=> 'CAChotelais',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOCHOTELAIS',
'clientNumTourFichier'=>1,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=>'49099,49332,49269,49343,49070,49299,49260,49355,49371,49231,49352,49193,49195',
'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=>'twargnier@agglo-choletais.fr,ylenaour@scores-decisions.com',
),
12=>array(
'nomClient'=> 'CAValDeBievres',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSTSTFTSA6CMOVALDEBIEVRES',
'clientNumTourFichier'=>1,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=>'94003,94016,94034,94037,94043,94038,94076',
//'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ'=>'5191,5192,5193,5194,5195,5196,5202,5203,5306,5307,5308,5309,5370,5385,5410,5415,5422,5426,5430,5431,5432,5442,5443,5451,5453,5454,5455,5458,5459,5460,5470,5485,5498,5499,5505,5510,5515,5520,5522,5525,5530,5531,5532,5542,5543,5546,5547,5548,5551,5552,5553,5554,5555,5558,5559,5560,5570,5585,5599,5605,5610,5615,5620,5622,5625,5630,5631,5632,5642,5643,5646,5647,5648,5651,5652,5653,5654,5655,5658,5659,5660,5670,5685,5699,5710,5720,5770,5785',
//'mailTo'=>'twargnier@agglo-choletais.fr',
),
13=>array(
'nomClient'=> 'Anthony',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOANTHONY',
'clientNumTourFichier'=>2,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=>'92002',
'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
//'mailTo'=>'twargnier@agglo-choletais.fr',
),
14=>array(
'nomClient'=> 'CUB',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSTSTFTSA6CMOMOMCUB',
'clientNumTourFichier'=>1,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=>'33003,33004,33013,33032,33039,33056,33063,33065,33075,33096,33119,33162,33167,33192,33069,33200,33519,33249,33273,33273,33312,33318,33376,33434,33449,33487,33522,33550',
'NAF-'=>'4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,9412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
//'mailTo'=>'ylenaour@scores-decisions.com',
),
15=>array(
'nomClient'=> 'PaysDesCouleurs',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOPAYSCOULEURS',
'clientNumTourFichier'=>1,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=>'38014,38022,38050,38054,38055,38083,38135,38139,38247,38261,38295,38297,38320,38458,38465,38483,38525,38541,38543,38124',
'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=>'directiondeveloppement@lepaysdescouleurs.fr,ylenaour@scores-decisions.com',
),
16=>array(
'nomClient'=> 'Oleron',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOPMOLERON',
'clientNumTourFichier'=>1,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=>'17058,17185,17189,17219,17265,17351,17406,17093,17140,17323,17337,17385,17411,17485,17486',
'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=>'aferreira@scores-decisions.com',
),
17=>array(
'nomClient'=> 'Rosny',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFBODPRDFTSA6CMOROSNY',
'clientNumTourFichier'=>1,
'nbBilansMax'=>3,
'typeLigneBilan'=>401,
'CodeCom'=>'93064',
'NAF-'=>'4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=>'1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=>'economie@mairie-rosny-sous-bois.fr,support@scores-decisions.com',
),
/*16=>array(
'nomClient'=> 'ADACL40',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOADACL40',
'clientNumTourFichier'=>1,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=> '40004,40021,40036,40065,40129,40133,40168,40181,40187,40213,40261,40264,40271,40272,40284,40291,40292,40293,40296,40304,40310,40317,40328',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
'mailTo'=> 'lestanguet.celluleprojet@adacl40.fr,ylenaour@scores-decisions.com',
),
*/
/*
4=>array(
'nomClient'=> 'Tremblay',
'typePrestaton'=>'diffusionInsee',
'clientIdentifiant'=>'DIFINSPRDFTSA6CMOTREMBLAY',
'clientNumTourFichier'=>1,
'nbBilansMax'=>2,
'typeLigneBilan'=>401,
'CodeCom'=> '30047,30189,30060,30125,30169,30075,30156,30189,30061,30155,30211,30356,30128,30138,30145,30245,30036,30039,30082,30249,30206,30057,30257,30241,30102,30228,30317',
'NAF-'=> '4781Z,4782Z,4789Z,4799A,4950Z,6820A,6820B,8411Z,8412Z,8413Z,8421Z,8422Z,8423Z,8424Z,8430A,8430B,8430C,9411Z,8412Z,9420Z,9491Z,9492Z,9499Z,9900Z',
'CJ-'=> '1800,2700,3110,3205,6539,6540,6541,7111,7112,7113,7120,7150,7160,7171,7172,7179,7190,7210,7220,7225,7229,7230,7312,7313,7314,7321,7322,7323,7331,7341,7342,7343,7345,7346,7347,7348,7349,7351,7352,7353,7354,7355,7356,7361,7362,7363,7364,7365,7366,7371,7372,7373,7378,7379,7381,7382,7383,7384,7385,7389,7410,7430,7450,7470,7490,8110,8120,8130,8140,8150,8160,8170,8190,8310,8311,8410,8420,8450,8490,9110,9150,9210,9220,9222,9223,9230,9240,9260',
//'mailTo'=>'e.kwiatkowski@tremblayenfrance.fr',
'mailTo'=> 'ylenaour@scores-decisions.com',
),
*/
);
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
Production de stock/Diffusion des bases A6CMO (ce traitement ce lance automatiquement pour les diffusions le lundi).
Options :
-s Génération du stock
-d=SSAAMMJ(JHHIISS) Diffusion depuis le SSAAMMJJ ou SSAAMMJJHHIISS
-c=XXX N° de client/prestation
-v Verbosité maximum
";
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (strtolower(substr($argv[$i],1,1))) {
case 's': $stock=true; break;
case 'v': $debug=true; break;
case 'd': $dateDebutCmd=strtr(substr($argv[$i],3),array('-'=>'',':'=>''))*1; break;
case 'c': $idClientTodo=substr($argv[$i],3); break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n"); break;
}
} else $tabFichier[]=$argv[$i];
}
}
if ($dateDebutCmd!==false) {
if (strlen($dateDebut)==8)
$dateDebut=WDate::dateT('Ymd','Y-m-d',$dateDebut).' 00:00:00';
elseif (strlen($dateDebut)==14)
$dateDebut=WDate::dateT('YmdHis','Y-m-d H:i:s',$dateDebut);
elseif ($dateDebut==0)
$dateDebut=WDate::dateT('Ymd','Y-m-d',WDate::getNextDate(date('Ymd'), -7)).' 00:00:00';
else
die('Format de date incorrecte !'.EOL);
}
$iDb=new WDB('jo');
$iDb2=new WDB('jo');
$iInsee=new MInsee();
$iBodacc=new MBodacc();
foreach ($tabPrestas as $idClient=>$tabPresta) {
$nomClient=$tabPresta['nomClient'];
$typePrestaton=$tabPresta['typePrestaton'];
$clientIdentifiant=$tabPresta['clientIdentifiant'];
$clientNumTourFichier=$tabPresta['clientNumTourFichier'];
$tabFJ=explode(',',$tabPresta['CJ']);
$tabFJexclus=explode(',',$tabPresta['CJ-']);
$tabNAF=explode(',',$tabPresta['NAF']);
$tabNAFexclus=explode(',',$tabPresta['NAF-']);
$tabDepCom=explode(',',$tabPresta['CodeCom']);
$nbBilansMax=$tabPresta['nbBilansMax'];
$typeLigneBilan=$tabPresta['typeLigneBilan'];
if ($idClientTodo && $idClientTodo<>$idClient) {
echo date('Y/m/d - H:i:s') ." - On ignore le traitement pour '$nomClient'...".EOL;
continue;
} elseif (@$tabPresta['freqenvois']=='M') {
// Si on n'est pas Lundi OU que le début du mois est passé
if(date('w')<>1 || date('d')*1>7) {
echo date('Y/m/d - H:i:s') ." - On ignore le traitement Mensuel pour '$nomClient'...".EOL;
continue;
} elseif ($dateDebutCmd==false) {
// Si aucune date de début de périmètre alors on force au mois précédent
$dateDebut=WDate::dateT('Ymd','Y-m-d',WDate::getNextDate(date('Ymd'), -31)).' 00:00:00';
//$dateDebut=20130101;
}
}
/**
** On génère la ligne d'entête
**/
$fp=fopen(REP_TEMP . $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt', 'w');
if ($fp==false) die('ERREUR : Impossible de créer le fichier !');
error_reporting(E_ALL ^ E_NOTICE);
$str= initstr('001', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr(date('YmdHis'), 14) . // Date de génération du fichier
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
initstr($clientIdentifiant, 36) . // Identifiant Client
initstr($typePrestaton, 32) . // Type de prestation
initstr(VERSION_FICHIER_IDENTITE, 4) . // Type de prestation
initstr(FILLER, 1901) . // FILLER
'';
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes=1;
//print_r($tabFJ);
if (count($tabFJ)>0 && $tabFJ[0]<>'')
$strFJ =' AND cj IN('.implode(',',$tabFJ).') ';
elseif (count($tabFJexclus)>0 && $tabFJexclus[0]<>'')
$strFJ =' AND cj NOT IN('.implode(',',$tabFJexclus).') ';
else
$strFJ ='';
if (count($tabNAF)>0 && $tabNAF[0]<>'')
$strNAF=" AND ape_etab IN('".implode("','",$tabNAF)."') ";
elseif (count($tabNAFexclus)>0 && $tabNAFexclus[0]<>'')
$strNAF=" AND ape_etab NOT IN('".implode("','",$tabNAFexclus)."') ";
else
$strNAF ='';
$strDepCom="'".implode("','",$tabDepCom)."'";
$strDepComStock='';
foreach ($tabDepCom as $idepcom=>$depcom) {
if ($idepcom==0) {
$strDepComStock.="AND adr_dep IN ('".substr($depcom,0,2)."','0".substr($depcom,0,2)."') ";
if (trim(substr($depcom,3,2))<>'') $strDepComStock.="AND adr_com IN (".substr($depcom,2,3);
} else {
if (trim(substr($depcom,3,2))<>'') $strDepComStock.=substr($depcom,2,3);
}
if (isset($tabDepCom[$idepcom+1])) $strDepComStock.=',';
elseif (trim(substr($depcom,3,2))<>'') $strDepComStock.=')';
}
// Com Com Muretains
echo date('Y/m/d - H:i:s') ." - Sélection de la cible pour '$nomClient'...".EOL;
if ($stock) {
$field='siren, nic';
$table='etablissements_old';
$where="source=2 AND actif=1 AND siege IN (0,1) $strDepComStock $strFJ $strNAF";
$nbEtab=$iDb->select($table, $field, $where, true, MYSQL_ASSOC, true);
if (mysql_errno()==1146) {
// Table don't exist ?
$table='etablissements';
$nbEtab=$iDb->select($table, $field, $where, true, MYSQL_ASSOC, true);
}
}
else {
$strFJ=str_replace(' cj ',' insCJ ', $strFJ);
$strNAF=str_replace(' ape_etab ',' insAPET700 ', $strNAF);
$field='insSIREN AS siren, insNIC 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="insDEPCOM IN ($strDepCom) $strFJ $strNAF AND dateInsert>='$dateDebut' GROUP BY insSIREN, insNIC";
$nbEtab=$iDb->select($table, $field, $where, true, MYSQL_ASSOC, true);
}
echo "SELECT $field
FROM $table
WHERE $where;
";
echo mysql_error().EOL;
echo date('Y/m/d - H:i:s') ." - Nombre d'établissement en sortie : ".$nbEtab.EOL;
$lL=0;
while($lSiret=$iDb->fetch(MYSQL_ASSOC)) {
$lL++;
// 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'];
$a=$iInsee->getIdentiteEntreprise($siren,$nic);
$b=$iInsee->getInfosNotice($siren,$nic);
$c=$iInsee->getAdresse($siren,$nic);
if (!$stock) {
$ev_EVE=$lSiret['insEVE'];
$ev_DATEVE=$lSiret['insDATEVE'];
$ev_TYPETAB=$lSiret['insTYPETAB'];
$ev_DESTINAT=$lSiret['insDESTINAT'];
switch($ev_EVE*1) {
case 410:
case 420:
case 425:
$ev_DATEFEREN=substr(strtr($ev_DATEVE,array('-'=>'',':'=>'')),0,8);
break;
}
$ev_SIRETLIE=$lSiret['insSIRETPS']*1;
if ($ev_SIRETLIE<1000) {
$ev_SIRETLIE=$lSiret['insSIRETASS']*1;
if ($ev_SIRETLIE<1000) $ev_SIRETLIETYPE='';
else $ev_SIRETLIETYPE='A';
} else
$ev_SIRETLIETYPE='P';
$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=$iDb2->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;
}
// Forcage pour idclient=3 nimes metropole !!!
if ($idClient==3 && $tcaSED<>' ') $a['TrancheCA']=$tcaSED;
$str= initstr(200, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité
initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Numéro unique d'identification interne d'un établissement S&D
initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise
initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'établissement
initstr($a['Source'], 3 , '0', ALIGN_RIGHT) . // Obligatoire SOURCE Source de la fiche d'identité
initstr($iInsee->valideSiren($siren,$nic), 1 , '0', ALIGN_RIGHT) . // Obligatoire SIRETVALIDE Siren/siret valide
initstr($a['numRC'], 10 ) . // Facultatif NUMRCS Numéro de Registre du Commerce et des Sociétés
initstr($a['Tribunal'], 6 ) . // Facultatif TRIBUNAL Identifiant du Tribunal
initstr(str_replace('-','',$a['dateMajIdentite']), 8 , '0', ALIGN_RIGHT) . // Obligatoire DATEMAJ Date de la dernière mise à jour dans la base S&D
initstr($a['Actif'], 1 , '0', ALIGN_RIGHT) . // Obligatoire ACTIF Établissement juridiquement actif
initstr($a['ActifEco'], 1 , '0', ALIGN_RIGHT) . // Obligatoire ACTIFECO Établissement économiquement actif
initstr($a['SituationJuridique'], 2 ) . // Obligatoire SITJUR Situation Juridique de l'entreprise
initstr($ev_EVE, 3 ) . // Facultatif EVE Dernier événement Insee recensé
initstr(str_replace('-','',$a['DateMajINSEE']), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEVE Date du dernier événement Insee recensé
initstr($ev_TYPETAB, 2 ) . // Facultatif TYPETAB Type d'établissement concerné par l'événement
initstr($a['Siege'], 1 , '0', ALIGN_RIGHT) . // Obligatoire SIEGE Établissement siège, secondaire ou principal
initstr($a['Nom'], 160 ) . // Obligatoire NOM Raison Sociale
initstr($a['NomCommercial'], 160 ) . // Facultatif NOMCOM Nom commercial
initstr($a['Enseigne'], 80 ) . // Facultatif ENSEIGNE Enseigne de l'établissement
initstr($a['Sigle'], 40 ) . // Facultatif SIGLE sigle de l'entreprise
initstr($a['AdresseNum'], 4 , '0', ALIGN_RIGHT) . // Facultatif ADR_NUMVOIE Numéro dans la voie
initstr($a['AdresseBtq'], 1 ) . // Facultatif ADR_BTQ Indicateur de répétition (Bis, Ter, etc...)
initstr($a['AdresseVoie'], 4 ) . // Facultatif ADR_TYPVOIE Type de voie
initstr($a['AdresseRue'], 32 ) . // Obligatoire ADR_LIBVOIE Libellé de la voie
initstr($a['Ville'], 32 ) . // Obligatoire ADR_LIBCOM Commune
initstr($a['CP'], 5 , '0', ALIGN_RIGHT) . // Obligatoire ADR_CP Code postal
initstr($a['Adresse2'], 38 ) . // Facultatif ADR_COMP Complément d'adresse
initstr('', 38 ) . // Facultatif ADR_DISTSP Distribution spéciale
initstr($a['Pays'], 38 ) . // Facultatif PAYS Pays
initstr($a['PaysIso2'], 2 ) . // Facultatif PAYSISO2 Code Pays au format ISO2
initstr($a['Dept'], 2 ) . // Obligatoire ADR_DEP Département de l'établissement
initstr($a['codeCommune'], 3 , '0', ALIGN_RIGHT) . // Obligatoire ADR_COM Code commune de l'établissement
initstr(str_replace(' ','',$a['Rivoli']), 5 ) . // Facultatif CODEVOIE Code voie de l'établissement
initstr($a['codIris'], 4 ) . // Facultatif CODEIRIS Code Iris de l'établissement
initstr('', 5 ) . // Facultatif CODEILOT Code Ilot de l'établissement
initstr($a['AdresseDom'], 1 , '0', ALIGN_RIGHT) . // Facultatif ADRESSEDOM Indicateur d'adresse de domiciliation
initstr($a['Tel'], 15 ) . // Facultatif TEL Numéro de téléphone
initstr($a['Fax'], 15 ) . // Facultatif FAX Numéro de télécopie
initstr($a['Web'], 80 ) . // Facultatif WEB Site Web
initstr($a['Mail'], 80 ) . // Facultatif MAIL Adresse Email de contact générique
initstr($a['Auxiliaire'], 1 , '0', ALIGN_RIGHT) . // Facultatif AUXILT Auxiliarité de l'activité de l'établissement
initstr($a['Saisonnalite'], 1 , '0', ALIGN_RIGHT) . // Facultatif SAISONAT Saisonnalité de l'établissement
initstr($a['NatureActivite'], 2 , '0', ALIGN_RIGHT) . // Facultatif ACTIVNAT Nature de l'activité de l'établissement
initstr($a['OrigineCreation'], 2 ) . // Facultatif ORIGINE Origine de la création de l'établissement
initstr($a['TypeExploitation'], 2 , '0', ALIGN_RIGHT) . // Facultatif TYPEXPLOIT Type d'exploitation
initstr($a['LIEUACT'], 2 , '0', ALIGN_RIGHT) . // Facultatif LIEUACT Lieu de l'activité de l'établissement
initstr($a['ACTISURF'], 2 , '0', ALIGN_RIGHT) . // Facultatif ACTISURF Type de magasin
initstr($a['PRODPART'], 1 , '0', ALIGN_RIGHT) . // Facultatif PRODPART Participation particulière à la production de l'établissement
initstr($b['insARRONET'], 2 , '0', ALIGN_RIGHT) . // Facultatif ARRONET Arrondissement de l'établissement
initstr($b['insCTONET'], 3 , '0', ALIGN_RIGHT) . // Facultatif CTONET Canton
initstr($b['insTCD'], 2 , '0', ALIGN_RIGHT) . // Facultatif TCD Tranche de commune détaillée
initstr($b['insZEMET'], 2 , '0', ALIGN_RIGHT) . // Facultatif ZEMET Zone d'emploi
initstr($b['insDU'], 2 ) . // Facultatif DU Département de l'unité urbaine de localisation
initstr($b['insTU'], 1 ) . // Facultatif TU Taille de l'unité urbaine
initstr($b['insUU'], 2 ) . // Facultatif UU Numéro de l'untié urbaine
initstr(str_replace('-','',$a['DateCreaEt']), 8 , '0', ALIGN_RIGHT) . // Facultatif DCRET Date de création de l'établissement
initstr($a['NafEtab'], 5 ) . // Obligatoire APE_ETAB Code activité dans la NAF rév2 de l'établissement
initstr($a['NaceEtab'], 5 ) . // Facultatif NACE_ETAB Code activité NACE de l'établissement
initstr(0, 4 , '0', ALIGN_RIGHT) . // Facultatif DAPET Année de validité de l'activité principale de l'établissement
initstr($a['EffectifEtab'], 7 , '0', ALIGN_RIGHT) . // Facultatif EFF_ET Effectif de l'établissement
initstr($a['EffEtTr'], 2 ) . // Facultatif TEFF_ET Tranche d'effectif de l'établissement
initstr($a['AnneeEffEt'], 4 , '0', ALIGN_RIGHT) . // Facultatif DEFET Année de mise à jour de l'effectif établissement
initstr('', 1 ) . // Facultatif MODET Modalité de l'activité pricipale de l'établissement
initstr($a['EXPLET'], 1 ) . // Facultatif EXPLET Etablissement exploitant tout ou partie des moyens de production
initstr($b['insRPET'], 2 , '0', ALIGN_RIGHT) . // Facultatif RPET Région de localisation de l'établissement
initstr(str_replace('-','',0), 8 , '0', ALIGN_RIGHT) . // Facultatif DREACTET Date de réactivation de l'établissement
initstr(str_replace('-','',0), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEFERET Date de fermeture de l'établissement
initstr($b['insEAEANT'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANT Année de validité des rubriques de niveau Etab provenant des EAE*
initstr($b['insEAEAPET'], 5 ) . // Facultatif EAEAPET Activité principale de l'établissement issue des EAE
initstr($b['insEAESEC1T'], 5 ) . // Facultatif EAESEC1T Activité secondaire de l'établissement issue des EAE
initstr($b['insEAESEC2T'], 5 ) . // Facultatif EAESEC2T Autre activité secondaire de l'établissement issue des EAE
initstr(str_replace('-','',$a['DateCreaEn']), 8 , '0', ALIGN_RIGHT) . // Facultatif DCREN Date de création de l'entreprise
initstr($a['NafEnt'], 5 ) . // Obligatoire APE_ENT Code activité dans la NAF rév2 de l'entreprise
initstr($a['NaceEnt'], 5 ) . // Facultatif NACE_ENT Code activité NACE de l'entreprise
initstr(0, 4 , '0', ALIGN_RIGHT) . // Facultatif DAPEN Année de validité de l'activité principale de l'entreprise
initstr($a['Effectif'], 7 , '0', ALIGN_RIGHT) . // Facultatif EFF_ENT Effectif de l'entreprise
initstr($a['EffEnTr'], 2 ) . // Facultatif TEFF_ENT Tranche d'effectif de l'entreprise
initstr($a['AnneeEffEn'], 4 , '0', ALIGN_RIGHT) . // Facultatif DEFEN Année de mise à jour de l'effectif entreprise
initstr($a['MODEN'], 1 ) . // Facultatif MODEN Modalité de l'activité pricipale de l'entreprise
initstr($a['EXPLEN'], 1 ) . // Facultatif EXPLEN Entreprise exploitant tout ou partie des moyens de production
initstr($b['insRPEN'], 2 , '0', ALIGN_RIGHT) . // Facultatif RPEN Région de localisation du siège de l'entreprise
initstr(str_replace('-','',$ev_DREACTEN), 8 , '0', ALIGN_RIGHT) . // Facultatif DREACTEN Date de réactivation de l'entreprise
initstr(str_replace('-','',$ev_DATEFEREN), 8 , '0', ALIGN_RIGHT) . // Facultatif DATEFEREN Date de fermeture de l'entreprise
initstr(str_replace('-','',$a['dateImmat']),8 , '0', ALIGN_RIGHT) . // Facultatif DATEIMMAT Date d'immatriculation de l'entreprise au RCS
initstr(str_replace('-','',$a['dateRad']), 8 , '0', ALIGN_RIGHT) . // Facultatif DATERAD Date de radiation de l'entreprise du RCS
initstr($a['Capital'], 15 , '0', ALIGN_RIGHT) . // Facultatif CAPITAL Montant du capital de l'entreprise
initstr($a['CapitalType'], 1 ) . // Facultatif CAPITALTYPE Type de capital
initstr($a['CapitalDev'], 3 ) . // Facultatif CAPITALDEV Devise du capital
initstr($a['FJ'], 4 , '0', ALIGN_RIGHT) . // Obligatoire CJ Catégorie Juridique de l'entreprise
initstr($a['Civilite'], 1 , '0', ALIGN_RIGHT) . // Facultatif CIVILITE Civilité de l'entreprise si Personne Physique
initstr($a['NbEtab'], 4 , '0', ALIGN_RIGHT) . // Facultatif NBETAB Nombre d'établissements actifs de l'entreprise
initstr($a['TrancheCA'], 1 , '0', ALIGN_RIGHT) . // Facultatif TCA Tranche de chiffre d'affaire
initstr($a['TrancheCAexp'], 1 , '0', ALIGN_RIGHT) . // Facultatif TCAEXP Tranche de chiffre d'affaire à l'export
initstr($a['APRM'], 6 ) . // Facultatif APRM Activité principale au registre des métiers
initstr($a['MONOREG'], 1 , '0', ALIGN_RIGHT) . // Facultatif MONOREG Mono-régionalité de l'entreprise
initstr($a['REGIMP'], 2 , '0', ALIGN_RIGHT) . // Facultatif REGIMP Principale région d'implantation de l'entreprise
initstr($a['MONOACT'], 1 , '0', ALIGN_RIGHT) . // Facultatif MONOACT Mono-activité de l'entreprise
initstr(substr($a['SiretSiege'],-5), 5 , '0', ALIGN_RIGHT) . // Facultatif NICSIEGE Nic de l'établissement siège
initstr($a['RECME'], 1 , '0', ALIGN_RIGHT) . // Facultatif RECME Répertoire des Entreprises Contrôlées Majoritairement par l'État
initstr($ev_SIRETLIE, 14 , '0', ALIGN_RIGHT) . // Facultatif SIRETLIE Siret lié : prédécesseur, successeur, doublon, autre
initstr($ev_SIRETLIETYPE, 1) . // Facultatif SIRETLIETYPE Type de sitet lié
initstr($a['AutreSiret']['pre']['nic'], 5 , '0', ALIGN_RIGHT) . // Facultatif NICPREC Nic de l'établissement prédécesseur (dans le cadre d'un transfert)
initstr($a['AutreSiret']['suc']['nic'], 5 , '0', ALIGN_RIGHT) . // Facultatif NICSUIV Nic de l'établissement successeur (dans le cadre d'un transfert)
initstr($ev_DESTINAT, 2 ) . // Facultatif insDESTINAT Destination Insee
initstr($b['insDEPCOMEN'], 5 , '0', ALIGN_RIGHT) . // Facultatif insDEPCOMEN Code commune Insee du siège de l'entreprise
initstr($ev_MNICSIEGE, 1 , '0', ALIGN_RIGHT) . // Facultatif insMNICSIEGE Indicateur de MAJ du NIC SIEGE
initstr($ev_MNOMEN, 1 , '0', ALIGN_RIGHT) . // Facultatif insMNOMEN Indicateur de MAJ de la Raison Sociale
initstr($ev_MCJ, 1 , '0', ALIGN_RIGHT) . // Facultatif insMCJ Indicateur de MAJ de la Forme Juridique
initstr($ev_MAPEN, 1 , '0', ALIGN_RIGHT) . // Facultatif insMAPEN Indicateur de MAJ du NAF entreprise
initstr($ev_MENSEIGNE, 1 , '0', ALIGN_RIGHT) . // Facultatif insMENSEIGNE Indicateur de MAJ de l'ENSEIGNE
initstr($ev_MAPET, 1 , '0', ALIGN_RIGHT) . // Facultatif insMAPET Indicateur de MAJ du NAF établissement
initstr($ev_MADRESSE, 1 , '0', ALIGN_RIGHT) . // Facultatif insMADRESSE Indicateur de MAJ de l'ADRESSE de l'établissement
initstr($ev_MAUXILT, 1 , '0', ALIGN_RIGHT) . // Facultatif insMAUXILT Indicateur de MAJ de l'AUXILIARITE
initstr($ev_MSIGLE, 1 , '0', ALIGN_RIGHT) . // Facultatif insMSIGLE Indicateur de MAJ du SIGLE
initstr($ev_MEXPLEN, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLEN Indicateur de MAJ du caractère EXPLOITANT entrep
initstr($ev_MEXPLET, 1 , '0', ALIGN_RIGHT) . // Facultatif insMEXPLET Indicateur de MAJ du caractère EXPLOITANT étab
initstr(1, 1 ) . // Facultatif ADR_RNVP Type de Prestation RNVP si RNVP
initstr($c['L1_NOM'], 38 ) . // Facultatif L1_nomen Ligne 1 : Nom de l'entreprise
initstr($c['L2_NOM2'], 38 ) . // Facultatif L2_COMP Ligne 2 : Complément de nom
initstr($c['L3_ADRCOMP'], 38 ) . // Facultatif L3_CADR Ligne 3 : Complément d'adresse
initstr($c['L4_VOIE'], 38 ) . // Facultatif L4_VOIE Ligne 4 : Adresse
initstr($c['L5_DISTSP'], 38 ) . // Facultatif L5_DISP Ligne 5 : Distribution spéciale
initstr($c['L6_POST'], 38 ) . // Facultatif L6_POST Ligne 6 : Code Postal, commune, etc..
initstr($c['L7_PAYS'], 38 ) . // Facultatif L7_ETRG Ligne 7 : Pays si étranger
initstr($b['insEAEANN'], 4 , '0', ALIGN_RIGHT) . // Facultatif EAEANN Année de validité des rubriques de niveau ENTREP provenant des EAE*
initstr($b['insEAEAPEN'], 5 ) . // Facultatif EAEAPEN Activité principale de l'entreprise issue des EAE
initstr($b['insEAESEC1N'], 5 ) . // Facultatif inseaesec1n Activité secondaire n°1 de l'entreprise issue des EAE
initstr($b['insEAESEC2N'], 5 ) . // Facultatif inseaesec2n Activité secondaire n°2 de l'entreprise issue des EAE
initstr($b['insEAESEC3N'], 5 ) . // Facultatif inseaesec3n Activité secondaire n°3 de l'entreprise issue des EAE
initstr($b['insEAESEC4N'], 5 ) . // Facultatif inseaesec4n Activité secondaire n°4 de l'entreprise issue des EAE
initstr($a['GeoLat'], 12 , ' ', ALIGN_RIGHT) . // Facultatif GPSX Latitude en ° et décimales de ° (format WGS1984)
initstr($a['GeoLon'], 12 , ' ', ALIGN_RIGHT) . // Facultatif GPSY Longitude en ° et décimales de ° (format WGS1984)
initstr($a['GeoPrecis'], 1 , '0', ALIGN_RIGHT) . // Facultatif GPSP Niveau de précision du géocodage
initstr($a['GeoInfos']['NZUS'], 10 ) . // Facultatif ZUS Identifiant de la Zone Urbaine Sensible
initstr($a['GeoInfos']['NZRU'], 10 ) . // Facultatif ZRU Identifiant de la Zone de Rénovation Urbaine
initstr($a['GeoInfos']['NZFU'], 10 ) . // Facultatif ZFU Identifiant de la Zone Franche Urbaine
initstr($a['GeoInfos']['NCUCS'],10 ) . // Facultatif CUCS Identifiant de la Zone Contrat Urbain de Cohésion Social
initstr($a['GeoInfos']['NAFR'], 10 ) . // Facultatif AFR Identifiant de la Zone AFR
initstr($a['GeoInfos']['NZRR'], 10 ) . // Facultatif ZRR Identifiant de la ZRR
initstr($a['TvaNumero'], 15 ) . // Facultatif TVA Numéro de TVA Intracommunataire
initstr($a['TvaAttribue'], 1 , '0', ALIGN_RIGHT) . // Facultatif TVAVALIDE Numéro de TVA validé
initstr($a['AncienSiege'], 1 , '0', ALIGN_RIGHT) . // Facultatif ANCIENSIEGE Ancien siège
initstr($a['Isin'], 12 ) . // Facultatif CODEISIN Code ISIN de l'entreprise si cotation en bourse
// A voir
initstr($a['dir1NomPrenom'], 40 ) . // Facultatif PPDIR1NOM Nom du principal dirigeant
initstr('', 30 ) . // Facultatif PPDIR1PRENOM Prénom du principal dirigeant
initstr('', 40 ) . // Facultatif PPDIR1NNAISS Nom de naissance du ppl dirigeant
initstr(str_replace('-','',$a['dir1DateNaiss']), 8 , '0', ALIGN_RIGHT).// Facultatif PPDIR1DNAISS Date de naissance
initstr($a['dir1LieuNaiss'], 35 ) . // Facultatif PPDIR1LNAISS Lieu de Naissance
initstr($a['dir1Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1FONC Code Fonction
initstr(str_replace('-','',$a['dir1DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR1MAJ Date de MAJ du ppl dirigeant
// A voir
initstr($a['dir2NomPrenom'], 40 ) . // Facultatif PPDIR2NOM Nom du seconde principal dirigeant
initstr('', 30 ) . // Facultatif PPDIR2PRENOM Prénom du 2ème principal dirigeant
initstr('', 40 ) . // Facultatif PPDIR2NNAISS Nom de naissance du 2ème ppl dirigeant
initstr(str_replace('-','',$a['dir2DateNaiss']), 8 , '0', ALIGN_RIGHT).// Facultatif PPDIR2DNAISS Date de naissance du 2ème ppl dirigeant
initstr($a['dir2LieuNaiss'], 35 ) . // Facultatif PPDIR2LNAISS Lieu de Naissance du 2ème ppl dirigeant
initstr($a['dir2Code'], 4 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2FONC Code Fonction du 2ème ppl dirigeant
initstr(str_replace('-','',$a['dir2DateFct']), 8 , '0', ALIGN_RIGHT) . // Facultatif PPDIR2MAJ Date de MAJ du 2ème ppl dirigeant
initstr(str_replace('-','',$a['bilanDate']), 8 , '0', ALIGN_RIGHT) . // Facultatif BILANCLOT Date de dernière clôture de bilan disponible
initstr($a['bilanMois'], 2 , '0', ALIGN_RIGHT) . // Facultatif BILANDUREE Durée du dernier exercice disponible
initstr($tcaSEDmt, 15 , '0', ALIGN_RIGHT) . // Facultatif BILANCA Chiffre d'affaires au dernier bilan disponible
initstr($a['bilanHN'], 15 , '0', ALIGN_RIGHT) . // Facultatif BILANRES Résultat au dernier bilan disponible
initstr($tcaSED, 1 ) . // Tranche de CA SED
initstr($tcaSEDtype, 1 ) . // Type de tranche de CA : (R)éel, (I)nconnu ou (E)stimé
initstr($tcaSEDannee, 4 ) . // Année du CA
initstr(' ', 35) ; // Facultatif FILLER1 Zone libre
/*
AnneeTCA
CapitalNbActions
CapitalMtActions
*/
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes++;
$mBil=new MBilans($siren);
$tabBilans=@$mBil->listeBilans();
$iBil=0;
if ($nbBilansMax>0) {
foreach ($tabBilans as $idxBilan=>$derBilan) {
$iBil++;
/*if (count($tabBilans)>0) {
print_r($tabBilans);
die();
}
$derBilan=current($tabBilans);*/
$p=@$mBil->getBilan(WDate::dateT('Ymd','d/m/Y',$derBilan['dateExercice']), $derBilan['typeBilan']);
//print_r($p);
if ($p['CONSOLIDE']=='S') $numLiasse='2033';
else $numLiasse='2050';
$unite=strtoupper($p['MONNAIE_LIV_UNITE']);
if ($unite=='') $unite='U';
$strIni=initstr($typeLigneBilan, 3) . // Obligatoire CODE_ENTETE Ligne de description structurée de l'identité
initstr($a['SourceId'], 10 , '0', ALIGN_RIGHT) . // Obligatoire ID Numéro unique d'identification interne d'un établissement S&D
initstr($a['Siren'], 9 , '0', ALIGN_RIGHT) . // Obligatoire SIREN Siren de l'entreprise
initstr($a['Nic'], 5 , '0', ALIGN_RIGHT) . // Obligatoire NIC Nic de l'établissement
initstr($a['Source'], 3 , '0', ALIGN_RIGHT) . // Obligatoire SOURCE Source de la fiche d'identité
initstr($iInsee->valideSiren($siren,$nic), 1 , '0', ALIGN_RIGHT) . // Obligatoire SIRETVALIDE Siren/siret valide
initstr($a['numRC'], 10 ) . // Facultatif NUMRCS Numéro de Registre du Commerce et des Sociétés
initstr($a['Tribunal'], 6 ) . // Facultatif TRIBUNAL Identifiant du Tribunal
initstr(str_replace('-','',$p['DATE_FRAICHE_BILAN']), 8, '0', ALIGN_RIGHT) . // DATEMAJ Date de la dernière mise à jour du bilan dans la base S&D Format AAAAMMJJ
initstr(substr($p['DATE_FRAICHE_BILAN'],0,4), 4, '0', ALIGN_RIGHT) . // MILLESIME Année du bilan
initstr(str_replace('-','',$p['DATE_CLOTURE']), 8, '0', ALIGN_RIGHT) . // BILAN_DATE Date de clôture du bilan Format AAAAMMJJ
initstr($p['DUREE_MOIS'], 2, '0', ALIGN_RIGHT) . // BILAN_DUREE Durée de l'exercice en mois
initstr(str_replace('-','',$p['DATE_CLOTURE_PRE']), 8, '0', ALIGN_RIGHT) . // BILAN_DATEP Date de clôture du bilan précédent Format AAAAMMJJ
initstr($p['DUREE_MOIS_PRE'], 2, '0', ALIGN_RIGHT) . // BILAN_DUREEP Durée de l'exercice précédent en mois
initstr($numLiasse,4) . // BILAN_LIASSE Numéro de la première liasse du bilan 2033,2050
initstr($p['CONSOLIDE'], 1) . // BILAN_TYPE Type de bilan S=Réel Normal Simplifié, C=Consolidé, N=Réel Normal
initstr($p['MONNAIE'], 3) . // BILAN_MONNAIE Code devise de livraison selon la norme ISO 4217 (3 lettres)
initstr($p['MONNAIE_ORI'], 3) . // BILAN_MONNAIEO Code devise d'origine du bilan selon la norme ISO 4217*
initstr($unite, 1); // BILAN_UNITE Unité du bilan livré U=en unité de devise, K=en milliers, M=en millions
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']);
$strIni.=initstr(count($p), 4, '0', ALIGN_RIGHT); // BILAN_NBPOSTES Nombre de postes livrés
$nbP=0;$strP='';
if ($typeLigneBilan==400) {
foreach ($p as $code=>$valeur) {
$nbP++;
if ($valeur>=0) $signe='+';
else $signe='-';
$strP.= initstr($code, 4).$signe.initstr(abs($valeur), 20, '0', ALIGN_RIGHT);
if($nbP<76) continue;
fwrite($fp, initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes++;
$nbP=0;$strP='';
}
if($nbP<76) { // Ecriture de la dernière ligne sauf s'il y a dejà 76 postes
fwrite($fp, initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes++;
}
} else {
$uniteMultiple=1;
switch (strtoupper($unite)) {
case 'K': $uniteMultiple=1000; break;
case 'M': $uniteMultiple=1000000; break;
}
if ($p['CONSOLIDE']=='S') $tabPostes=@$iBilan->bilanSimplifie2Normal($p);
else $tabPostes=$p;
// Chiffre d'affaires - Poste FL au format 2050
$strP.= @exporteRatio($p['FL']);
// Chiffre d'affaires Export - Poste FK
$strP.= @exporteRatio($p['FK']);
// 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']);
$strP.= @exporteRatio($va);
// Masse salariale - R132 = FY + FZ
$ms=$p['FY'] + $p['FZ'];
$strP.= @exporteRatio($ms);
// EBE - R140 = R130-R132 - FX + FO
$strP.= @exporteRatio($va-$ms - $p['FX'] + $p['FO']);
// Personnel extérieur à l'entreprise, Intérim = Poste YU
$strP.= @exporteRatio($p['YU']);
// Sous-traitance
$strP.= @exporteRatio($p['YT']);
// Effectif
$strP.= @exporteRatio($p['YP']);
// Capital - Poste DA
$strP.= @exporteRatio($p['DA']);
// Montant des Immo. Corp. Terrains Brut Poste AN
$strP.= @exporteRatio($p['AN']);
// Montant des Immo. Corp. Constructions Poste AP
$strP.= @exporteRatio($p['AP']);
// Montant des Installations Techniques, matériel et outillage industriels Poste AR
$strP.= @exporteRatio($p['AR']);
// Montant des Immo. Corp. Brut =AN+AP+AR+AT+AV+AX
$strP.= @exporteRatio($p['AN'] + $p['AP'] + $p['AR'] + $p['AT'] + $p['AV'] + $p['AX']);
// Montant des Immo. Corp. Net =AN-AO + AP-AQ + AR-AS + AT-AU + AV-AW + AX-AY
$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']);
// Montant des Immo. Incorp. Brut =AB+AD+AF+AH+AJ+AL
$strP.= @exporteRatio($p['AB'] + $p['AD'] + $p['AF'] + $p['AH'] + $p['AJ'] + $p['AL']);
// Montant des Immo. Incorp. Net =AB-AC + AD-AE + AF-AG + AH-AI + AJ-AK + AL-AM
$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']);
// Montant des Taxe professionnelle Poste YW
$strP.= @exporteRatio($p['YW']);
fwrite($fp, initstr($strIni.$strP,LONGUEUR_LIGNE_SORTIE).$optionEOL);
$nbLignes++;
$strP='';
}
if ($iBil==$nbBilansMax) break;
}
//die();
}
if ($nbLignes%100==0) echo date ('Y/m/d - H:i:s')." - Nb lignes=$nbLignes\n";
}
/**
** On génère la ligne de fin de fichier
**/
$nbLignes++;
$str= initstr('999', 3, '0', ALIGN_RIGHT) . // Type de ligne
initstr(date('YmdHis'), 14) . // Date & Heure de fin génération du fichier
initstr($clientNumTourFichier, 10, '0', ALIGN_RIGHT) . // Numéro de tour du fichier pour le client
initstr($clientIdentifiant, 36) . // Identifiant Client
initstr($typePrestaton, 32) . // Type de prestation
initstr($nbLignes, 10, '0', ALIGN_RIGHT) . // Nombre de lignes Total du fichier
'';
fwrite($fp, initstr($str,LONGUEUR_LIGNE_SORTIE)); // Pas de fin de ligne sur la dernière ligne
fclose($fp);
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fichier client terminé.".EOL;
/** Envoi du fichier produit par mail
**/
if (isset($tabPresta['mailTo'])) {
$tabAttached=array(REP_TEMP.$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$messageInfo="Bonjour,
Veuillez trouver le fichier d'établissements Scores & Décisions relatifs à votre abonnement.
Bien Cordialement,
Le service Support.
--
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";
if(@sendMail('production@scores-decisions.com', $tabPresta['mailTo'].',support@scores-decisions.com', "Diffusion A6CMO S&D", $messageInfo, '', $tabAttached))
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fichier envoyé à ".$tabPresta['mailTo'].EOL;
else
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Erreur lors de l'envoi du fichier à ".$tabPresta['mailTo'].EOL;
}
if (!copy(REP_TEMP.$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt','/home/data/clients/a6cmo/'.$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt'))
echo date ('Y/m/d - H:i:s')." - ERREUR : Copie du fichier dans A6CMO impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Prestation n°$numPrestation, Client $nomClient : Fichier disponible dans A6CMO.".EOL;
}
die();
/** Mise à jour des numéros de tour et des date de dernières exécutions
**/
if ($incrementationDesTour) {
$iDbCrm=new WDB('sugarcrm');
$rep=$iDbCrm->update('cases_cstm', array('trtdatederniereexec_c'=>date('YmdHis'), 'trtnumerotour_c'=> $clientNumTourFichier),
"id_c='".$tabAdherent['idPrestationBdd']."'");
}
/** Conversion du fichier si nécessaire en CSV
**/
if ($tabAdherent['formatEnvois']=='csv') {
$ligneOut='';
$ligne001=$ligne100=$ligne104=$ligne999=0;
$tabLignes=file(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$fichier_csv=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv';
$fp=fopen(REP_TEMP . $fichier_csv, 'w');
foreach ($tabLignes as $i=>$ligne) {
$ecrireLignePre=false;
$typeLigne=substr($ligne, 0, 3)*1;
switch ($typeLigne) {
case 1: // Ligne ignorée
// Ecriture de l'entête
$siren ='Siren';
$nic ='Nic';
$ref ='Référence';
$numPar ='Parution';
$bodacc ='Bodacc';
$datePar='Date parution';
$numAnn ='Numéro Annonce';
$cor ='Type Annonce';
$libTri ='Tribunal';
$numRC ='Numéro RCS';
$raisonS='Raison sociale';
$catEven='Chapitre';
$txtEven='Evènement(s)';
$dateEve='Date évènement';
$txtAnn ='Texte Annonce';
$ligne001++;
break;
case 100: // Structure Bodacc
$ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$dateEve;$txtAnn";
$ligne100++;
$siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce
$nic = trim(substr($ligne, 22, 5 )); // Nic
$ref = trim(substr($ligne, 71, 18 )); // Référence Client
$numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année
$bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C
$datePar= WDate::dateT('Ymd','d/M/Y',substr($ligne,31,8)); // Date de parution du Bodacc Format AAAAMMJJ
$numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc
$typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce
$corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion
$corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ
$corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion
$corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion
$dateEve1=substr($ligne, 1144, 8 ); // Date de jugezment
$dateEve2=substr($ligne, 1161, 8 ); // Date d'effet, etc...
if ($dateEve1>0)
$dateEve=WDate::dateT('Ymd','d/M/Y',$dateEve1);
elseif ($dateEve2>0)
$dateEve=WDate::dateT('Ymd','d/M/Y',$dateEve2);
else
$dateEve='';
$cor='';
if ($typeAnn<>'I') $cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate);
switch($typeAnn) {
case 'I': $cor='Insertion'.$cor; break;
case 'A': $cor='Additif'.$cor; break;
case 'R': $cor='Rectificatif'.$cor; break;
case 'S': $cor='Suppression'.$cor; break;
default: break;
}
$codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc
$libTri=$iBodacc->getTribunalNom($codeTri);
$numRC = trim(substr($ligne, 95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise
$raisonS= trim(substr($ligne, 104 , 150 )); // Raison sociale de l'entreprise
$even=array();
$even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN
$even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN
$even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN
$even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN
$even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN
$even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN
$even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN
$even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN
$txtEven='';
foreach ($even as $codeEven)
if ($codeEven<>0) {
$txtEven.=$iBodacc->getEvenement($codeEven)." ($codeEven), ";
$catEven=$iBodacc->getChapitreEvenement($codeEven);
}
else
$txtEven.='';
$txtEven=substr($txtEven,0,strlen($txtEven)-2);
$txtAnn='';
$ecrireLignePre=true;
break;
case 104: // Annonce
$ligne104++;
$txtAnn=trim($txtAnn.' '.str_replace(';','.',trim(substr($ligne, 89 , 1910)))); // Texte Annonce
break;
case 999: // Ligne ignorée
$ligneOut="$siren;$nic;$ref;$numPar;$bodacc;$datePar;$numAnn;$cor;$libTri;$numRC;$raisonS;$catEven;$txtEven;$dateEve;$txtAnn";
$ligne999++;
$ecrireLignePre=true;
break;
default: // Ligne non gérée
break;
}
if ($ecrireLignePre) fwrite($fp, $ligneOut.EOL);
}
fclose($fp);
echo date ('Y/m/d - H:i:s')." - Conversion du fichier $fichier_csv terminée !".EOL;
}
/** Conversion du fichier si nécessaire en SO2000
**/
elseif ($tabAdherent['formatEnvois']=='specifique') {
$fichierIn=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt';
if (preg_match('/APICIL/',$fichierIn)) { $numeroAbonneBil='019400018'; $optionsIdBil='I'; }
// elseif (preg_match('/METRO/',$fichierIn)) { $numeroAbonneBil='013990040'; $optionsIdBil='IN'; }
$ret=conversionSd2So2000($repProduction.$fichierIn, $numeroAbonneBil, '', $optionsIdBil);
if ($ret===true)
echo date('Y/m/d - H:i:s') . " - Conversion spécifique BIL/SO2000 (abonné $numeroAbonneBil) terminée !".EOL;
else
echo date('Y/m/d - H:i:s') . " - ERREUR lors de la conversion du fichier S&D $fichierIn en BIL/SO2000 (abonné $numeroAbonneBil) : $ret !".EOL;
}
/*Gzip ou zip zt envoi par mail ou dépot sur le site FTP*/
switch ($optionZip) {
case 'zip':
$zip = new ZipArchive;
$ficProduction=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.zip';
$res = $zip->open($repProduction.$ficProduction, ZipArchive::CREATE);
if ($res === TRUE) {
// $zip->addFromString('test.txt', 'file content goes here');
$zip->addFile( REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt',
$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
if ($tabAdherent['formatEnvois']=='csv')
$zip->addFile(REP_TEMP. $fichier_csv, $fichier_csv);
$zip->close();
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.zip OK...'.EOL;
} else {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Zip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
}
break;
case 'gzip':
$ficProduction= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.gz';
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$gz = gzopen($repProduction.$ficProduction,'w9');
if (!$gz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
} else {
gzwrite($gz, $string);
gzclose($gz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.gz OK...'.EOL;
}
if ($tabAdherent['formatEnvois']=='csv') {
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv.gz';
$string=file_get_contents(REP_TEMP. $fichier_csv);
$gz = gzopen($repProduction.$ficProduction_csv,'w9');
if (!$gz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Gzip du fichier $fichier_csv impossible !".EOL;
} else {
gzwrite($gz, $string);
gzclose($gz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier $ficProduction_csv OK...".EOL;
}
}
break;
case 'bzip2':
$ficProduction=$typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt.bz2';
$string=file_get_contents(REP_TEMP. $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt');
$bz = bzopen($repProduction.$ficProduction,'w');
// Ne sait pas si le niveau de compression 1 à 9 est implémenté pour cette fonction
if (!$bz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 impossible pour ". $typePrestaton .'_'. $clientIdentifiant .'.txt impossible !'.EOL;
} else {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier ". $typePrestaton .'_'. $clientIdentifiant .'.txt.bz2 OK...'.EOL;
}
if ($tabAdherent['formatEnvois']=='csv') {
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv.bz2';
$string=file_get_contents(REP_TEMP. $fichier_csv);
$bz = bzopen($repProduction.$ficProduction_csv,'w');
if (!$bz) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Compression Bzip2 du fichier $fichier_csv impossible !".EOL;
} else {
bzwrite($bz, $string, strlen($string));
bzclose($bz);
echo date ('Y/m/d - H:i:s')." - Compression du fichier $ficProduction_csv OK...".EOL;
}
}
break;
default:
$ficProduction= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.txt';
$ficProduction_csv= $typePrestaton.'_'.$clientIdentifiant.'_'.DATETIME.'.csv';
if (!copy(REP_TEMP.$ficProduction, $repProduction.$ficProduction))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été créé...".EOL;
if ($tabAdherent['formatEnvois']=='csv') {
if (!copy(REP_TEMP.$ficProduction_csv, $repProduction.$ficProduction_csv))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction_csv impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été créé...".EOL;
}
break;
}
/** Sauvegarde des fichiers dans clients **/
$repBakClient='/home/data/clients/'.strtolower($tabAdherent['nomClient']);
if (!file_exists($repBakClient)) {
echo date ('Y/m/d - H:i:s')." - ATTENTION : Les dossiers BACKUP du client ne sont pas correctement créés !".EOL;
if (!file_exists($repBakClient) && mkdir($repBakClient))
echo date ('Y/m/d - H:i:s')." - Le dossier Backup du client a été créé ($repBakClient)".EOL;
// if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv'))
// echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a été créé ($repFtpClient/recv)".EOL;
}
if (!copy($repProduction.$ficProduction, $repBakClient.'/'.$ficProduction))
echo date ('Y/m/d - H:i:s')." - ERREUR : Copy du fichier $ficProduction dans Backup impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été historisé...".EOL;
if ($tabAdherent['formatEnvois']=='csv') {
if (!copy($repProduction.$ficProduction_csv, $repBakClient.'/'.$ficProduction_csv))
echo date ('Y/m/d - H:i:s')." - ERREUR : Historisation du fichier $ficProduction_csv impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été historisé...".EOL;
}
/** Si FTP, déplacement dans les dossiers adéquats **/
if ($tabAdherent['supportPrestation']=='ftp' || $tabAdherent['supportPrestation']=='web') {//$repProduction.$ficProduction
$repFtpClient='/home/data/ftp/'.strtolower($tabAdherent['nomClient']);
if (!file_exists($repFtpClient) || !file_exists($repFtpClient.'/recv')) {
echo date ('Y/m/d - H:i:s')." - ATTENTION : Les dossiers FTP du client ne sont pas correctement créés !".EOL;
if (!file_exists($repFtpClient) && mkdir($repFtpClient))
echo date ('Y/m/d - H:i:s')." - Le dossier FTP du client a été créé ($repFtpClient)".EOL;
if (!file_exists($repFtpClient.'/recv') && mkdir($repFtpClient.'/recv'))
echo date ('Y/m/d - H:i:s')." - Le dossier FTP/RECV du client a été créé ($repFtpClient/recv)".EOL;
}
if (!move($repProduction.$ficProduction, $repFtpClient.'/recv/'.$ficProduction))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction dans FTP/RECV impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction a été déplacé dans FTP/RECV...".EOL;
if ($tabAdherent['formatEnvois']=='csv') {
if (!move($repProduction.$ficProduction_csv, $repFtpClient.'/recv/'.$ficProduction_csv))
echo date ('Y/m/d - H:i:s')." - ERREUR : Déplacement du fichier $ficProduction_csv dans FTP/RECV impossible !".EOL;
else
echo date ('Y/m/d - H:i:s')." - Le fichier $ficProduction_csv a été déplacé dans FTP/RECV...".EOL;
}
}
/*
$strMessage.=date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces par fichier '$typePrestaton'", $strMessage);
echo date ('Y/m/d - H:i:s')." - Fin du traitement diffusion BODACC.\n";
die();
*/
function exporteRatio($valeur) {
$signe='+';
if($valeur<0) $signe='-';
return ''.$signe.initstr(abs($valeur), 20, '0', ALIGN_RIGHT);
}
?>