#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini 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); } ?>