> /home/scores/log/SfrSurv.log */ error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE & ~E_WARNING); // Define path to application directory defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../application')); // Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array( realpath(APPLICATION_PATH . '/../library'), get_include_path(), ))); //Use classmap autoloader - useful with opcode and realpath cache require_once 'Zend/Loader/AutoloaderFactory.php'; require_once 'Zend/Loader/ClassMapAutoloader.php'; Zend_Loader_AutoloaderFactory::factory(array( 'Zend_Loader_ClassMapAutoloader' => array( __DIR__ . '/../../library/Zend/autoload_classmap.php', __DIR__ . '/../../library/Application/autoload_classmap.php', __DIR__ . '/../../library/Scores/autoload_classmap.php', __DIR__ . '/../../application/autoload_classmap.php', ), 'Zend_Loader_StandardAutoloader' => array( 'prefixes' => array( 'Zend' => __DIR__ . '/../../library/Zend', 'Application' => __DIR__ . '/../../library/Application', 'Scores' => __DIR__ . '/../../library/Scores', 'SdMetier' => __DIR__ . '/../../library/SdMetier', 'Metier' => __DIR__ . '/../../library/Metier', ), 'fallback_autoloader' => true ) )); // Zend_Application - Use it if you don't have autoloaders //require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application( APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini' ); try { $opts = new Zend_Console_Getopt( //Options array( 'help|?' => "Displays usage information.", 'in' => "", 'seq=s' => "Spécifier le numéro de séquence pour traitement", 'cron' => "Mandatory option for launch the cli in cron", ) ); $opts->parse(); } catch (Zend_Console_Getopt_Exception $e) { echo $e->getUsageMessage(); exit; } //Usage if( isset($opts->help) || count($opts->getOptions())==0 ) { echo "Execute prestation SFR.\n"; echo $opts->getUsageMessage(); exit; } //Chargement des éléments à surveiller if ( $opts->in ) { $c = new Zend_Config($application->getOptions()); $db = Zend_Db::factory($c->profil->db->metier); Zend_Db_Table_Abstract::setDefaultAdapter($db); $seq = null; // => Automatic mode if ( $opts->cron ) { //Guess the last Seq Number try { $db->setFetchMode(Zend_Db::FETCH_OBJ); $result = $db->fetchRow('SELECT NumSeq, dateInsert FROM jo.sfr_data ORDER BY id DESC LIMIT 0,1'); } catch(Zend_Db_Adapter_Exception $e) { echo $e->getMessage(); } $seq = $result->NumSeq; //Vérification date $dateNow = new Zend_Date(); $dateInsert = new Zend_Date($result->dateInsert, 'yyyy-MM-dd HH:mm:ss'); $diff = $dateNow->sub($dateInsert); $measure = new Zend_Measure_Time($diff->toValue(), Zend_Measure_Time::HOUR); if ( $measure->getValue()<20 ) { echo date('Y-m-d H:i:s')." : Aucun traitement à réaliser (Dernière date : ".$dateInsert->toString('yyyy-MM-dd HH:mm:ss').").".PHP_EOL; exit; } } if ( is_string($opts->seq) ) { $seq = $opts->seq; } if ( $seq===null ) { echo date('Y-m-d H:i:s')." - Aucune numéro de séquence.\n"; exit; } //Add the idClient from CRM Prestation (surveillances_listes.idClient) $idClient = 'SURBODPRDSFTPSFRBT'; /** * Ajouter les SIREN qui ne sont pas en surveillance */ echo date('Y-m-d H:i:s')." - Ajout des SIREN" . PHP_EOL; $sql = "INSERT IGNORE INTO jo.surveillances_listes (idClient, siren, dateAjout) ( SELECT '".$idClient."', siren, '".date('Y-m-d')."' FROM jo.sfr_data WHERE error=0 AND NumSeq='".$seq."' AND siren NOT IN (SELECT siren FROM jo.surveillances_listes WHERE idClient='".$idClient."') )"; try { $db->query($sql); } catch (Zend_Db_Exception $e) { echo date('Y-m-d H:i:s')." - Erreur ajout des SIREN.\n"; } /** * Marquer les SIREN supprimés */ echo date('Y-m-d H:i:s')." - Marquage de suppression des SIREN." . PHP_EOL; $sql = "UPDATE jo.surveillances_listes SET dateSuppr='".date('Y-m-d')."' WHERE idClient='".$idClient."'"; try { $result = $db->query($sql); $nbRowsAffected = $result->rowCount(); echo date('Y-m-d H:i:s')." - $nbRowsAffected lignes supprimés." . PHP_EOL; } catch (Zend_Db_Exception $e) { echo date('Y-m-d H:i:s')." - Erreur suppression des SIREN." . PHP_EOL; } /** * Mise à jour des SIREN - Confirmation */ echo date('Y-m-d H:i:s')." - Marquage de confirmation des SIREN." . PHP_EOL; $sql = "UPDATE jo.surveillances_listes AS surv INNER JOIN jo.sfr_data AS sfr ON surv.siren=sfr.siren SET dateConf='".date('Y-m-d')."', dateSuppr='0000-00-00' WHERE surv.idClient='".$idClient."' AND sfr.error=0 AND sfr.NumSeq='".$seq."'"; /*$sql = "UPDATE jo.surveillances_listes SET dateConf='".date('Y-m-d')."', dateSuppr='0000-00-00' WHERE idClient='".$idClient."' AND siren IN ( SELECT CAST(siren AS UNSIGNED) FROM jo.sfr_data WHERE error=0 AND NumSeq='".$seq."' ) ";*/ try { $result = $db->query($sql); $nbRowsAffected = $result->rowCount(); echo date('Y-m-d H:i:s')." - $nbRowsAffected lignes confirmées." . PHP_EOL; } catch (Zend_Db_Exception $e) { echo date('Y-m-d H:i:s')." - Erreur confirmation des SIREN." . PHP_EOL; } }