Update rules
This commit is contained in:
parent
e69aa50ab3
commit
0c9872351d
@ -94,8 +94,6 @@ $path = $config->profil->path->data.'/'.$mois;
|
|||||||
if(!file_exists($path))
|
if(!file_exists($path))
|
||||||
mkdir($path);
|
mkdir($path);
|
||||||
|
|
||||||
$outFile = $profil->login.'_'.$opts->id.'_'.date('YmdHis').'.csv';
|
|
||||||
|
|
||||||
require_once 'Scores/Enrichissement.php';
|
require_once 'Scores/Enrichissement.php';
|
||||||
$dico = new Enrichissement();
|
$dico = new Enrichissement();
|
||||||
$fields = $dico->getFields();
|
$fields = $dico->getFields();
|
||||||
@ -105,10 +103,11 @@ $tabEntete = array('siren', 'nic');
|
|||||||
$tabEnteteLabel = array('SIREN', 'NIC');
|
$tabEnteteLabel = array('SIREN', 'NIC');
|
||||||
$columns = array('LPAD(siren, 9, 000000000) AS siren', 'LPAD(nic,5,00000) AS nic');
|
$columns = array('LPAD(siren, 9, 000000000) AS siren', 'LPAD(nic,5,00000) AS nic');
|
||||||
$joins = array();
|
$joins = array();
|
||||||
foreach ( $dataProfil as $item ) {
|
foreach ( $dataProfil as $item )
|
||||||
|
{
|
||||||
//Get item
|
//Get item
|
||||||
if ( array_key_exists($item, $fields) ) {
|
if ( array_key_exists($item, $fields) )
|
||||||
|
{
|
||||||
$field = $fields[$item];
|
$field = $fields[$item];
|
||||||
|
|
||||||
//Définition de l'entete
|
//Définition de l'entete
|
||||||
@ -123,7 +122,8 @@ foreach ( $dataProfil as $item ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Pour les champs de type "code", ajouter le libellé
|
//Pour les champs de type "code", ajouter le libellé
|
||||||
if ( array_key_exists('join', $field) ) {
|
if ( array_key_exists('join', $field) )
|
||||||
|
{
|
||||||
$tabEnteteLabel[] = $field['join']['label'];
|
$tabEnteteLabel[] = $field['join']['label'];
|
||||||
$joinColumn = $item.'Lib';
|
$joinColumn = $item.'Lib';
|
||||||
$tabEntete[] = $joinColumn;
|
$tabEntete[] = $joinColumn;
|
||||||
@ -139,52 +139,106 @@ foreach ( $dataProfil as $item ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Ajouter le champ presentRcs
|
//Ajouter le champ presentRcs
|
||||||
$columns = 'presentRcs';
|
$columns[] = 'presentRcs';
|
||||||
$tabEntete[] = 'presentRcs';
|
$tabEntete[] = 'presentRcs';
|
||||||
$tabEnteteLabel[] = 'RCS';
|
$tabEnteteLabel[] = 'RCS';
|
||||||
$sqlFrom .= ' presentRcs';
|
|
||||||
|
//Paramètres du fichier
|
||||||
|
/**
|
||||||
|
* Possible file format
|
||||||
|
* csv, xlsx, xls, ods
|
||||||
|
* Possible options (for csv)
|
||||||
|
* separator : , ;
|
||||||
|
* encoding : ISO-8859-15, UTF-8
|
||||||
|
*/
|
||||||
|
$fileFormat = 'csv';
|
||||||
|
$fileOptions = array(
|
||||||
|
'separator' => ',',
|
||||||
|
'encoding' => 'UTF-8',
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($commande->fileFormat == 'csv') {
|
||||||
|
$fileFormat = 'csv';
|
||||||
|
$options = json_decode($commande->fileOptions);
|
||||||
|
if (!empty($options->separator)) {
|
||||||
|
$fileOptions['separator'] = $options->separator;
|
||||||
|
}
|
||||||
|
if (!empty($options->encoding)) {
|
||||||
|
$fileOptions['encoding'] = $options->encoding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($commande->fileFormat == 'xlsx') {
|
||||||
|
$fileFormat = 'xlsx';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Ouverture fichier
|
||||||
|
if ($fileFormat == 'csv')
|
||||||
|
{
|
||||||
|
$outFile = $profil->login.'_'.$opts->id.'_'.date('YmdHis').'.csv';
|
||||||
|
$fp = fopen($path.'/'.$outFile, 'w');
|
||||||
|
//Ecrire l'entete
|
||||||
|
if (count($tabEnteteLabel) > 0)
|
||||||
|
{
|
||||||
|
fputcsv($fp, $tabEnteteLabel, $fileOptions['separator'], '"');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($fileFormat == 'xlsx')
|
||||||
|
{
|
||||||
|
$outFile = $profil->login.'_'.$opts->id.'_'.date('YmdHis').'.xlsx';
|
||||||
|
$objPHPExcel = new PHPExcel();
|
||||||
|
$sheet = $objPHPExcel->setActiveSheetIndex(0);
|
||||||
|
//Ecrire l'entete
|
||||||
|
if (count($tabEnteteLabel) > 0)
|
||||||
|
{
|
||||||
|
foreach($tabEnteteLabel as $col => $value)
|
||||||
|
{
|
||||||
|
$sheet->setCellValueByColumnAndRow($col, 1, $value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Mise à jour des éléments
|
||||||
|
if ($opts->id)
|
||||||
|
{
|
||||||
|
$commandesM->update(array(
|
||||||
|
'dateStart'=>date('Y-m-d H:i:s'),
|
||||||
|
'fichier' => basename($outFile)
|
||||||
|
), "id = ".$commande->id);
|
||||||
|
}
|
||||||
|
|
||||||
//Pour chaque identifiant traiter les données
|
//Pour chaque identifiant traiter les données
|
||||||
$row = 0;
|
$row = 1;
|
||||||
$fp = fopen($path.'/'.$outFile, 'w');
|
|
||||||
//Ecrire l'entete
|
|
||||||
if (count($tabEnteteLabel)>0){
|
|
||||||
fputcsv($fp, $tabEnteteLabel, ',', '"');
|
|
||||||
}
|
|
||||||
//Mise à jour des éléments
|
|
||||||
if ($opts->id) {
|
|
||||||
$commandesM->update(array(
|
|
||||||
'dateStart'=>date('Y-m-d H:i:s'),
|
|
||||||
'fichier' => basename($outFile)
|
|
||||||
),
|
|
||||||
"id = ".$commande->id);
|
|
||||||
}
|
|
||||||
|
|
||||||
$traite = 0;
|
|
||||||
//Date de debut de traitement.
|
//Date de debut de traitement.
|
||||||
$dateStart = date('YmdHms');
|
$dateStart = date('YmdHms');
|
||||||
foreach ($identifiants as $siret )
|
foreach ($identifiants as $siret)
|
||||||
{
|
{
|
||||||
|
|
||||||
$sql = $db->select()->from('jo.etablissements_act', $columns);
|
$sql = $db->select()->from('jo.etablissements_act', $columns);
|
||||||
$sql->where("siren='".substr($siret,0,9)."' AND nic='".substr($siret,9,5)."'");
|
$sql->where("siren='".substr($siret,0,9)."' AND nic='".substr($siret,9,5)."'");
|
||||||
if (count($joins)) {
|
if (count($joins))
|
||||||
foreach ( $joins as $join ) {
|
{
|
||||||
|
foreach ( $joins as $join )
|
||||||
|
{
|
||||||
$sql->joinLeft($join['name'], $join['cond'], $join['col']);
|
$sql->joinLeft($join['name'], $join['cond'], $join['col']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$result = $db->fetchRow($sql);
|
$result = $db->fetchRow($sql);
|
||||||
$traite++;
|
|
||||||
} catch(Exception $e) {
|
} catch(Exception $e) {
|
||||||
echo $sql;
|
echo $sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
$tabData = $result->toArray();
|
$tabData = $result->toArray();
|
||||||
//Trier pour la sortie
|
//Trier pour la sortie
|
||||||
$tabSortie = array();
|
$tabSortie = array();
|
||||||
foreach($tabEntete as $key) {
|
foreach($tabEntete as $key)
|
||||||
|
{
|
||||||
//Add static values
|
//Add static values
|
||||||
if ( array_key_exists($key, $fields) ) {
|
if ( array_key_exists($key, $fields) ) {
|
||||||
if ( array_key_exists('values', $fields[$key]) ) {
|
if ( array_key_exists('values', $fields[$key]) ) {
|
||||||
@ -199,7 +253,21 @@ foreach ($identifiants as $siret )
|
|||||||
//Order data for CSV file
|
//Order data for CSV file
|
||||||
$tabSortie[] = isset($tabData[$key]) ? $tabData[$key] : '';
|
$tabSortie[] = isset($tabData[$key]) ? $tabData[$key] : '';
|
||||||
}
|
}
|
||||||
fputcsv($fp, $tabSortie, ',', '"');
|
|
||||||
|
|
||||||
|
//Ecriture dans le fichier
|
||||||
|
if ($fileFormat == 'csv')
|
||||||
|
{
|
||||||
|
fputcsv($fp, $tabSortie, ',', '"');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($fileFormat == 'xlsx')
|
||||||
|
{
|
||||||
|
foreach($tabSortie as $col => $value)
|
||||||
|
{
|
||||||
|
$sheet->setCellValueByColumnAndRow($col, $row+1, $value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Mise à jour des lignes traitées dans la base
|
//Mise à jour des lignes traitées dans la base
|
||||||
if ($opts->id) {
|
if ($opts->id) {
|
||||||
@ -208,8 +276,22 @@ foreach ($identifiants as $siret )
|
|||||||
|
|
||||||
$row++;
|
$row++;
|
||||||
}
|
}
|
||||||
fclose($fp);
|
|
||||||
if ($opts->id) {
|
//Fermeture du fichier
|
||||||
|
if ($fileFormat == 'csv')
|
||||||
|
{
|
||||||
|
fclose($fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($fileFormat == 'xlsx')
|
||||||
|
{
|
||||||
|
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
|
||||||
|
$objWriter->save($path.'/'.$outFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Fin de création du fichier
|
||||||
|
if ($opts->id)
|
||||||
|
{
|
||||||
$commandesM->update( array('dateStop' => date('Y-m-d H:i:s')) , "id = ".$commande->id);
|
$commandesM->update( array('dateStop' => date('Y-m-d H:i:s')) , "id = ".$commande->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user