MAJ des librairies depuis ws

This commit is contained in:
Michael RICOIS 2016-04-08 15:54:24 +02:00
parent ae80a36775
commit 2314188b29
7 changed files with 506 additions and 319 deletions

View File

@ -6270,79 +6270,122 @@ class Metier_Insee_MInsee extends Metier_Insee_Table
return $ret[0]['insDATEVE'];
}
/** Recherche les siret associés à un siret (successeur et/ou prédécesseur)
**
** @param integer $siren Siren de l'entreprise
** @param integer $nic Nic de l'étabissement
** @param integer $lien Type de lien (-1=prédécesseur, 0=prédécesseur et/ou successeur, 1=successeur)
**/
/**
* Recherche les siret associés à un siret (successeur et/ou prédécesseur)
* @param int $siren
* Siren de l'entreprise
* @param int $nic
* Nic de l'étabissement
* @param int $lien
* Type de lien (-1=prédécesseur, 0=prédécesseur et/ou successeur, 1=successeur)
*/
public function getSiretAssoc($siren, $nic, $lien=0)
{
$tabRet=array();
$ret=$this->iDb->select('insee.insee_even',
$tabRet = array();
$ret = $this->iDb->select('insee.insee_even',
'LPAD(insSIREN,9,0) AS insSIREN, LPAD(insNIC,5,0) AS insNIC, insDATEVE, insEVE, insAPET700, insSIEGE, insLIBCOM, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insDEPCOM, insCODEVOIE, insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS, insDESTINAT, insTYPETAB, insORIGINE, insTRAN, insNOMEN, insENSEIGNE, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, sirVersion',
"insSIREN=$siren AND insNIC<>$nic AND (insEVE IN ('510','520','530','540', 'CTS','CTE','STS','STE','MTDS','MTDE','MTAS','MTAE') OR insEVE LIKE 'T%') AND insDATEMAJ IN (
SELECT insDATEMAJ FROM insee.insee_even WHERE insSIREN=$siren AND insNIC=$nic AND (insEVE IN ('510','520','530','540', 'CTS','CTE','STS','STE','MTDS','MTDE','MTAS','MTAE') OR insEVE LIKE 'T%')
)", false, MYSQL_ASSOC);
if ( count($ret)>0 ) {
$datePre = $dateSuc = 0;
$nicPre = $nicSuc = 0;
if (count($ret) > 0) {
foreach ($ret as $iRet=>$tabEve) {
if ($tabEve['sirVersion']==4) {
if ($tabEve['insEVE']=='CTE' || $tabEve['insEVE']=='CTS' || $tabEve['insEVE']=='MTAE' || $tabEve['insEVE']=='MTAS') $typeLien='suc';
elseif ($tabEve['insEVE']=='STE' || $tabEve['insEVE']=='STS' || $tabEve['insEVE']=='MTDE' || $tabEve['insEVE']=='MTDS') $typeLien='pre';
else $typeLien='ind';
if ($tabEve['sirVersion'] == 4) {
if (in_array($tabEve['insEVE'], array('CTE','CTS','MTAE','MTAS'))) {
$typeLien = 'suc';
}
elseif (in_array($tabEve['insEVE'], array('STE','STS','MTDE','MTDS'))) {
$typeLien = 'pre';
}
else {
$typeLien = 'ind';
}
} else {
switch($tabEve['insTYPETAB']*1) {
case 8:
case 10:
case 20:
case 30:
if ($lien==1) continue;
$typeLien='pre';
if ($lien == 1) continue;
$typeLien = 'pre';
break;
case 9:
case 11:
case 21:
case 31:
if ($lien==-1) continue;
$typeLien='suc';
if ($lien == -1) continue;
$typeLien = 'suc';
break;
default:
switch($tabEve['insTRAN']) {
case 'D': if ($lien==1) continue; $typeLien='pre'; break(2);
case 'A': if ($lien==-1) continue; $typeLien='suc'; break(2);
default : if ($lien<>0) continue; $typeLien='ind'; break;
case 'D': if ($lien == 1) continue; $typeLien='pre'; break(2);
case 'A': if ($lien == -1) continue; $typeLien='suc'; break(2);
default : if ($lien != 0) continue; $typeLien='ind'; break;
}
}
}
$adr1=$tabEve['insL1_NOMEN'];
if ($adr1==NULL) $adr1=$tabEve['insNOMEN'];
$adr2=$tabEve['insL2_COMP'];
if ($adr2==NULL) $adr2=$tabEve['insENSEIGNE'];
$adr4=$tabEve['insL4_VOIE'];
if ($adr4==NULL) $adr4=preg_replace('/ +/',' ', $tabEve['insNUMVOIE'].' '.$tabEve['insINDREP'].' '.$tabEve['insTYPVOIE'].' '.$tabEve['insLIBVOIE']);
// Le NIC prédécesseur ne peut pas être le NIC actuel
if ($nicPre > 0 && $nicPre == $tabEve['insNIC']) {
continue;
}
// Le NIC successeur ne peut pas être le NIC actuel
if ($nicSuc > 0 && $nicSuc == $tabEve['insNIC']) {
continue;
}
$tabRet[$typeLien]=array(
'siren' => $tabEve['insSIREN'],
// L'évènement successeur ne peut pas être antérieur au prédécesseur
if ($dateSuc > 0 && $datePre > 0 && $dateSuc < $datePre) {
continue;
}
// Predecesseur et Successeur en mémoire
if ($typeLien == 'pre') {
$datePre = $tabEve['insDATEVE'];
$nicPre = $tabEve['insNIC'];
}
if ($typeLien == 'suc') {
$dateSuc = $tabEve['insDATEVE'];
$nicSuc = $tabEve['insNIC'];
}
// Data
$adr1 = $tabEve['insL1_NOMEN'];
if ($adr1 == null) {
$adr1=$tabEve['insNOMEN'];
}
$adr2 = $tabEve['insL2_COMP'];
if ($adr2 == null) {
$adr2=$tabEve['insENSEIGNE'];
}
$adr4 = $tabEve['insL4_VOIE'];
if ($adr4 == null) {
$adr4 = preg_replace('/ +/',' ', $tabEve['insNUMVOIE'].' '.$tabEve['insINDREP'].' '.
$tabEve['insTYPVOIE'].' '.$tabEve['insLIBVOIE']);
}
$tabRet[$typeLien] = array(
'siren' => $tabEve['insSIREN'],
'nic' => $tabEve['insNIC'],
'apeEtab' => $tabEve['insAPET700'],
'codeEve' => $tabEve['insEVE'],
'dateEve' => $tabEve['insDATEVE'],
'adrL1' => trim($adr1),
'adrL2' => trim($adr2),
'adrL3' => trim(prepareString($tabEve['insL3_CADR'])),
'adrL4' => trim($adr4),
'adrL5' => trim($tabEve['insL5_DISP']),
'adrL6' => trim($tabEve['insL6_POST']),
'adrL7' => trim($tabEve['insL7_ETRG']),
'adrL1' => trim($adr1),
'adrL2' => trim($adr2),
'adrL3' => trim(prepareString($tabEve['insL3_CADR'])),
'adrL4' => trim($adr4),
'adrL5' => trim($tabEve['insL5_DISP']),
'adrL6' => trim($tabEve['insL6_POST']),
'adrL7' => trim($tabEve['insL7_ETRG']),
'depCom' => $tabEve['insDEPCOM'],
'rivoli' => $tabEve['insCODEVOIE'],
'siege' => $tabEve['insSIEGE'],
'siege' => $tabEve['insSIEGE'],
'destinat' => $tabEve['insDESTINAT'],
'typEtab' => $tabEve['insTYPETAB'],
'origine' => $tabEve['insORIGINE'],
// insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS,
);
}
}

View File

@ -0,0 +1,84 @@
<?php
return array (
//RECHERCHE
'RECHCSV' => "Export des résultats de la recherche",
'IPARI' => "Investigation par l'image IparI&copy;",
'HISTOBODACC' => "Historique des annonces bodacc",
'INVESTIG' => "Investigation",
'SEARCHENT' => "Recherche Entreprise",
'SEARCHDIR' => "Recherche Dirigeant",
'SEARCHACT' => "Recherche Actionnaire",
//IDENTITE
'IDENTITE' => "Fiche d'identité",
'IDPROCOL' => 'Fiche procédure collective',
'LIENS' => "Liens inter-entreprise",
'ETABLISSEMENTS' => "Liste des établissements",
'GROUPE' => "Informations et organigramme du groupe",
'EVENINSEE' => '&Eacute;vènements INSEE',
'AVISINSEE' => 'Avis de situation INSEE',
'AVISRNCS' => 'Avis de situation RNCS',
'RNVP' => "Normalisation postale",
//DIRIGEANT
'DIRIGEANTS' => "Liste des dirigeants",
'DIRIGEANTSOP' => "Liste des dirigeants opérationnels",
//FINANCE
'SYNTHESE' => "Synthèse",
'RATIOS' => "Ratios",
'FLUX' => "Flux de trésorerie",
'LIASSE' => "Liasse fiscale",
'LIASSEXLS' => "Export des Liasses au format XLS",
'UPLOADBILAN' => "Saisie de bilan",
'BOURSE' => "Bourse & cotations",
'BANQUE' => "Relations bancaires",
//JURIDIQUE
'ANNONCES' => "Annonces légales",
'INFOSREG' => "Informations réglementée",
'COMPETENCES' => "Compétences territoriales",
'CONVENTIONS' => "Conventions collectives",
'MARQUES' => "Marques déposées",
//EVALUATION
'INDISCORE' => "indiScore&copy;",
'INDISCORE2' => "Rapport synthetique",
'INDISCORE3' => "Rapport complet",
'INDISCOREP' => "indiScore+",
'INDISCORE2P' => "Rapport synthetique+",
'INDISCORE3P' => "Rapport complet+",
'VALORISATION' => "Valorisation",
'SCORECSF' => "Score CSF",
'ENQUETEC' => "Enquête commerciale",
'AVISCREDIT' => "Avis de crédit personnalisé",
//PIECES
'KBIS' => "Extrait RCS",
'ACTES' => "Pièces officielles",
'PRIVILEGES' => "Privilèges",
//SURVEILLANCES
'SURVANNONCE' => "Surveillance des annonces légales",
'SURVINSEE' => "Surveillance des événements INSEE",
'SURVBILAN' => "Surveillance des bilans saisies (liasse fiscale)",
'SURVSCORE' => "Surveillance des événements sur le score",
'SURVACTES' => "Surveillance des pieces officielles (comptes annuels, actes)",
'SURVDIRIGEANTS'=> "Surveillance des dirigeants",
'SURVPAIEMENTS' => "Surveillance des paiements",
'SURVLIENS' => "Surveillance des liens financiers",
'SURVPRIV' => "Surveillance des privilèges",
//OPTIONS
'MONPROFIL' => "Mon profil",
'EDITION' => "Mode Edition",
'PORTEFEUILLE' => "Portefeuille",
'SURVLISTE' => "Liste des surveillances",
//DIVERS
'INTERNATIONAL' => "Recherche Internationale",
'BDF' => "Banque de France",
'WORLDCHECK' => "World-Check Risk Intelligence",
);

View File

@ -82,11 +82,33 @@ class Scores_Auth_Adapter_Db implements Zend_Auth_Adapter_Interface
$identity->hash = $this->_hash;
if ( null === $result ) {
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND, $identity);
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND, $identity, array("Identifiant ou mot de passe invalid"));
} else {
if ( $this->_password == $result->password
|| $this->_password == md5($result->login.'|'.$result->password) ) {
/**
* Date de debut de compte
*/
if ( !empty($result->dateDebutCompte) && $result->dateDebutCompte!='0000-00-00' ) {
$today = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$dateDebutCompte = mktime(0, 0, 0, substr($result->dateDebutCompte,5,2), substr($result->dateDebutCompte,8,2), substr($result->dateDebutCompte,0,4));
if ( $today < $dateDebutCompte ) {
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array("Date de validité dépassé"));
}
}
/**
* Date de fin de compte
*/
if ( !empty($result->dateFinCompte) && $result->dateFinCompte!='0000-00-00' ) {
$today = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$dateFinCompte = mktime(0, 0, 0, substr($result->dateFinCompte,5,2), substr($result->dateFinCompte,8,2), substr($result->dateFinCompte,0,4));
if ( $today > $dateFinCompte ) {
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array("Date de validité dépassé"));
}
}
$identity->id = $result->id;
$identity->idClient = $result->idClient;
$timeout = (!empty($result->timeout)) ? $result->timeout : $this->_timeout;
@ -95,7 +117,7 @@ class Scores_Auth_Adapter_Db implements Zend_Auth_Adapter_Interface
return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity);
} else {
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity);
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array("Identification impossible"));
}
}
}

View File

@ -2,37 +2,66 @@
class Scores_Auth_Adapter_Ws implements Zend_Auth_Adapter_Interface
{
/**
*
* Identifiant de l'utilisateur
* @var string
*/
protected $_username;
/**
*
* Password
* @var string
*/
protected $_password;
/**
*
* @var unknown
* Timeout
* @var int
*/
protected $_timeout = 1800;
/**
*
* @var unknown
* Marqueur de vérification IP (en iponly)
* @var boolean
*/
protected $_checkIp = false;
public function __construct($username, $password, $iponly = false)
/**
* Marqueur de vérification de hach
* @var boolean
*/
protected $_checkHach = false;
/**
* Liste des IPs des frontends (proxy)
* @var array
*/
protected $listProxyIp = array(
'62.210.222.34',
);
/**
* Authentification par WS
* @param string $username
* @param string $password
* @param string $mode
*/
public function __construct($username, $password, $mode = null)
{
$this->_username = $username;
$this->_password = $password;
if ($iponly){
$this->_password = 'iponly:'.$_SERVER['REMOTE_ADDR'];
if ($mode == 'hach') {
$this->_checkHach = true;
}
if ($mode == 'iponly'){
$ip = $_SERVER['REMOTE_ADDR'];
if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && in_array($ip, $this->listProxyIp)) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
$this->_password = 'iponly:'.$ip;
$this->_checkIp = true;
}
$this->_checkIp = $iponly;
}
/**
@ -41,77 +70,96 @@ class Scores_Auth_Adapter_Ws implements Zend_Auth_Adapter_Interface
*/
public function authenticate()
{
$adressIp = $_SERVER['REMOTE_ADDR'];
require_once 'Scores/WsScores.php';
$ws = new WsScores($this->_username, $this->_password);
$InfosLogin = $ws->getInfosLogin($this->_username, $adressIp);
$identity = new stdClass();
$identity->username = $this->_username;
$identity->password = $this->_password;
$identity->email = $InfosLogin->result->email;
$identity->profil = $InfosLogin->result->profil;
$identity->pref = $InfosLogin->result->pref;
$identity->droits = $InfosLogin->result->droits;
$identity->droitsClients = $InfosLogin->result->droitsClients;
$identity->nom = $InfosLogin->result->nom;
$identity->prenom = $InfosLogin->result->prenom;
$identity->tel = $InfosLogin->result->tel;
$identity->fax = $InfosLogin->result->fax;
$identity->mobile = $InfosLogin->result->mobile;
$identity->id = $InfosLogin->result->id;
$identity->idClient = $InfosLogin->result->idClient;
$identity->reference = $InfosLogin->result->reference;
$identity->nbReponses = $InfosLogin->result->nbReponses;
$identity->typeScore = $InfosLogin->result->typeScore;
$identity->dateValidation = $InfosLogin->result->dateValidation;
$identity->nombreConnexions = $InfosLogin->result->nombreConnexions;
$identity->dateDerniereConnexion = $InfosLogin->result->dateDerniereConnexion;
$identity->dateDebutCompte = $InfosLogin->result->dateDebutCompte;
$identity->dateFinCompte = $InfosLogin->result->dateFinCompte;
$identity->acceptationCGU = $InfosLogin->result->acceptationCGU;
$identity->ip = $adressIp;
$identity->modeEdition = false;
$timeout = (!empty($InfosLogin->result->timeout)) ? $InfosLogin->result->timeout : $this->_timeout;
$identity->timeout = $timeout;
$identity->time = time() + $timeout;
$lang = in_array($InfosLogin->result->lang, array('fr','en')) ? $InfosLogin->result->lang : 'fr';
$identity->lang = $lang;
$identity->langtmp = $lang;
/*
* Adresse Ip interdites
*/
$ipInterdites =
'81.252.88.0-81.252.88.7' // CTE D AGGLOMERATION DE SOPHIA
. ';' . '195.200.187.163' // PacWan
. ';' . '213.11.81.41' // Verizon France SAS
. ';' . '83.206.171.252' // FR-BASE-D-INFORMATIONS-LEGALES-BI
. ';' . '81.255.32.139'
. ';' . '212.155.191.1*' // Satair A/S
. ';' . '217.70.1*.17' // OJSC "Sibirtelecom"
. ';' . '212.37.196.156' // GENERALE-MULTIMEDIA-SUD
. ';' . '80.245.60.121' // Planete Marseille - Mailclub
. ';' . '213.246.57.101' // IKOULA
. ';' . '193.104.158.0-193.104.158.255' // Altares.fr
. ';' . '195.6.3.0-195.6.3.255' // ORT
. ';' . '217.144.112.0-217.144.116.63' // Coface
;
if ( $this->checkPlagesIp($ipInterdites, $adressIp) ) {
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_UNCATEGORIZED, $identity);
$ip = $_SERVER['REMOTE_ADDR'];
if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) && in_array($ip, $this->listProxyIp)) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
// Renvoi
if ( is_string($InfosLogin) || $InfosLogin->error->errnum!=0){
$message = $InfosLogin;
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array($message));
} elseif ($this->_username == $InfosLogin->result->login) {
return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity);
$ws = new Scores_Ws_Client('gestion', '0.3');
$ws->setHttpLogin($this->_username);
$ws->setHttpPassword($this->_password);
$adressIp = $_SERVER['REMOTE_ADDR'];
$parameters = new stdClass();
$parameters->login = $this->_username;
$parameters->ipUtilisateur = $ip;
$parameters->from = 'auth';
$InfosLogin = $ws->getInfosLogin($parameters);
// --- Renvoi
if ( is_string($InfosLogin) || $InfosLogin->error->errnum != 0 ) {
$message = $InfosLogin;
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $identity, array($message));
}
// --- Assignation identity
elseif ( $InfosLogin !== false && !empty($InfosLogin->result->login)) {
$identity = new stdClass();
if ($this->_checkIp || $this->_checkHach) {
Zend_Registry::get('firebug')->info("IN");
$identity->password = $this->_password;
} else {
$identity->password = md5($InfosLogin->result->login.'|'.$this->_password);
}
Zend_Registry::get('firebug')->info($identity->password);
$identity->username = $InfosLogin->result->login;
$identity->email = $InfosLogin->result->email;
$identity->profil = $InfosLogin->result->profil;
$identity->pref = $InfosLogin->result->pref;
$identity->droits = $InfosLogin->result->droits;
$identity->droitsClients = $InfosLogin->result->droitsClients;
$identity->nom = $InfosLogin->result->nom;
$identity->prenom = $InfosLogin->result->prenom;
$identity->tel = $InfosLogin->result->tel;
$identity->fax = $InfosLogin->result->fax;
$identity->mobile = $InfosLogin->result->mobile;
$identity->id = $InfosLogin->result->id;
$identity->idClient = $InfosLogin->result->idClient;
$identity->reference = $InfosLogin->result->reference;
$identity->nbReponses = $InfosLogin->result->nbReponses;
$identity->typeScore = $InfosLogin->result->typeScore;
$identity->dateValidation = $InfosLogin->result->dateValidation;
$identity->nombreConnexions = $InfosLogin->result->nombreConnexions;
$identity->dateDerniereConnexion = $InfosLogin->result->dateDerniereConnexion;
$identity->dateDebutCompte = $InfosLogin->result->dateDebutCompte;
$identity->dateFinCompte = $InfosLogin->result->dateFinCompte;
$identity->acceptationCGU = $InfosLogin->result->acceptationCGU;
$identity->ip = $ip;
$identity->version = $InfosLogin->result->version;
$identity->modeEdition = false;
$timeout = (!empty($InfosLogin->result->timeout)) ? $InfosLogin->result->timeout : $this->_timeout;
$identity->timeout = $timeout;
$identity->time = time() + $timeout;
$lang = in_array($InfosLogin->result->lang, array('fr','en')) ? $InfosLogin->result->lang : 'fr';
$identity->lang = $lang;
$identity->langtmp = $lang;
// --- Adresse Ip interdites
$ipInterdites =
'81.252.88.0-81.252.88.7' // CTE D AGGLOMERATION DE SOPHIA
. ';' . '195.200.187.163' // PacWan
. ';' . '213.11.81.41' // Verizon France SAS
. ';' . '83.206.171.252' // FR-BASE-D-INFORMATIONS-LEGALES-BI
. ';' . '81.255.32.139'
. ';' . '212.155.191.1*' // Satair A/S
. ';' . '217.70.1*.17' // OJSC "Sibirtelecom"
. ';' . '212.37.196.156' // GENERALE-MULTIMEDIA-SUD
. ';' . '80.245.60.121' // Planete Marseille - Mailclub
. ';' . '213.246.57.101' // IKOULA
. ';' . '193.104.158.0-193.104.158.255' // Altares.fr
. ';' . '195.6.3.0-195.6.3.255' // ORT
. ';' . '217.144.112.0-217.144.116.63' // Coface
;
if ( $this->checkPlagesIp($ipInterdites, $adressIp) ) {
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_UNCATEGORIZED, $identity);
}
// --- OK connecté
$this->_username = $identity->username;
$this->_password = $identity->password;
return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $identity);
} else {
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_UNCATEGORIZED, $identity);
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_UNCATEGORIZED, $identity, array("Identification impossible"));
}
}

View File

@ -55,12 +55,6 @@ class Scores_Ws_Server
*/
public $serviceVersion = null;
/**
* Activer le marqueur lorsqu'une action implémente des méthodes publiques afin de ne par logguer les appels
* @var boolean
*/
protected $serviceActionSubcall = false;
/**
* List all application IPs
* @var array
@ -618,7 +612,7 @@ class Scores_Ws_Server
$output = false;
$droits = $this->User->droits;
if ( is_array($droits) ) {
if ( in_array($perm, $droits) ){
if ( in_array(strtolower($perm), $droits) ){
$output = true;
}
} else {
@ -695,7 +689,7 @@ class Scores_Ws_Server
$resultId = $userM->fetchAll($sql);
} catch (Zend_Db_Exception $e) {
$c = Zend_Registry::get('config');
file_put_contents($c->profil->path->data.'/log/application.log',
file_put_contents($c->profil->path->shared.'/log/application.log',
date('Y-m-d H:i:s').'- AUTH : '.$e->getMessage()."\n", FILE_APPEND);
return '0000';
}

View File

@ -60,7 +60,7 @@ class SdMetier_Rnvp_Adresse
{
try {
$etabM = new Application_Model_JoEtablissements();
$sql = $etabM->select(true)->columns(array('LPAD(source,3,0)', 'LPAD(source_id,20,0)'))
$sql = $etabM->select(true)->columns(array('LPAD(source,3,0) AS source', 'LPAD(source_id,20,0) AS sourceId'))
->where('siren=?', substr($companyId,0,9))
->where('nic=?', substr($companyId,9,5));
$etabResult = $etabM->fetchRow($sql);

View File

@ -1,210 +1,206 @@
<?php
require_once 'framework/common/mysql.php';
require_once 'framework/common/strings.php';
require_once 'framework/common/dates.php';
require_once 'framework/common/mysql.php';
require_once 'framework/common/strings.php';
require_once 'framework/common/dates.php';
define ('REP_TEMP', LOG_PATH);
// Environnement : DEV ou PRD
define ('ENV', 'PRD');
define ('EOL', "\n");
define ('REP_TEMP', LOG_PATH);
// Environnement : DEV ou PRD
define ('ENV', 'PRD');
define ('EOL', "\n");
define ('MODE_CLI', 1);
define ('MODE_WWW', 2);
define ('MODE_WS', 3);
define ('MODE_CLI', 1);
define ('MODE_WWW', 2);
define ('MODE_WS', 3);
if (@$_SERVER['argc']>0) define('MODE_EXEC', MODE_CLI);
else define('MODE_EXEC', MODE_WS);
/** @todo Gérer la distinction du mode WWW du WS
else define('MODE_EXEC', MODE_WWW);
if (@$_SERVER['argc']>0) define('MODE_EXEC', MODE_CLI);
else define('MODE_EXEC', MODE_WS);
/** TimeStamp Unix
** Si $onlyMiliSec=true, retourne juste les milisec du timestamp
**/
function microtime_float($onlyMiliSec=false) {
list($usec, $sec) = explode(' ', microtime());
if (!$onlyMiliSec)
return ((float)$usec + (float)$sec);
else
return $usec;
}
/** Fait une pause aléatoire entre 0 et 15 secondes par défaut
**/
function randsleep($min_sec=0, $max_sec=15) {
sleep(rand($min_sec, $max_sec));
}
/** Retourne la factorielle d'un nombre : 4! = 1*2*3*4 = 24
**/
function factorielle($nbr) {
if($nbr === 0) // condition d'arret
return 1;
else
return $nbr*factorielle($nbr-1);
}
/** Vérification que la variable demandé respecte bien les règles passées en paramètres
* @param mixed Variable à tester
* @param int Longueur minimum en caractère de la variable
* @param int Longueur mximum
* @param char(1) Type de variable <b>A</b>:Alphanumérique / <b>N</b>:Numérique
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
* @return mixed true, false ou Message d'erreur passé en paramètre
*/
function valideData($variable, $taille_min, $taille_max, $type_variable, $erreur=false) {
if ( strlen((string)$variable) < $taille_min )
return $erreur;
/** TimeStamp Unix
** Si $onlyMiliSec=true, retourne juste les milisec du timestamp
**/
function microtime_float($onlyMiliSec=false) {
list($usec, $sec) = explode(' ', microtime());
if (!$onlyMiliSec)
return ((float)$usec + (float)$sec);
else
return $usec;
}
if ( strlen((string)$variable) > $taille_max )
return $erreur;
/** Fait une pause aléatoire entre 0 et 15 secondes par défaut
**/
function randsleep($min_sec=0, $max_sec=15) {
sleep(rand($min_sec, $max_sec));
}
/** Retourne la factorielle d'un nombre : 4! = 1*2*3*4 = 24
**/
function factorielle($nbr) {
if($nbr === 0) // condition d'arret
return 1;
else
return $nbr*factorielle($nbr-1);
}
/** Vérification que la variable demandé respecte bien les règles passées en paramètres
* @param mixed Variable à tester
* @param int Longueur minimum en caractère de la variable
* @param int Longueur mximum
* @param char(1) Type de variable <b>A</b>:Alphanumérique / <b>N</b>:Numérique
* @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false
* @return mixed true, false ou Message d'erreur passé en paramètre
*/
function valideData($variable, $taille_min, $taille_max, $type_variable, $erreur=false) {
if ( strlen((string)$variable) < $taille_min )
return $erreur;
if ( strlen((string)$variable) > $taille_max )
return $erreur;
if ( $type_variable == 'A' )
if ( is_string($variable) == true )
return true;
else
return $erreur;
elseif ( $type_variable == 'N')
{
for ($i=0; $i < strlen((string)$variable); $i++)
{
$car = substr((string)$variable,$i,1);
if ($car<'0' || $car>'9')
return $erreur;
}
return true;
}
return $erreur;
}
function adapteOCtets($size) {
$kb = 1024; // Kilobyte
$mb = 1024 * $kb; // Megabyte
$gb = 1024 * $mb; // Gigabyte
$tb = 1024 * $gb; // Terabyte
if($size==0) return '0';
else if($size < $kb) return $size.'o';
else if($size < $mb) return round($size/$kb,2).'ko';
else if($size < $gb) return round($size/$mb,2).'Mo';
else if($size < $tb) return round($size/$gb,2).'Go';
else return round($size/$tb,2).'To';
}
/**
** Enregistrer une information dans la log
**
** @param string $debugLevel E=Error, W=Warning, N=Notice, I=Info, D=Debug
** @param string $message Message d'erreur à inscrire dans la log
** @param integer $line __LINE__
** @param string $file __FILE__
** @param string $function __FUNCTION__
** @param string $class __CLASS___
**/
function debugLog($debugLevel, $message, $line, $file, $function, $class) {
if (!file_exists(LOG_PATH.'/debug.log')) {
$fp=@fopen(LOG_PATH.'/debug.log', 'a');
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Memory;Message'.EOL);
} else
$fp=@fopen(LOG_PATH.'/debug.log', 'a');
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
@fclose($fp);
if ($debugLevel=='E'){
if (!file_exists(LOG_PATH.'/debugError.log')) {
$fp=@fopen(LOG_PATH.'/debugError.log', 'a');
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Message'.EOL);
} else
$fp=fopen(LOG_PATH.'/debugError.log', 'a');
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
@fclose($fp);
//die($message);
}
}
function prepareString($str) {
$tabReplace = array(
'œ' => "oe",
''.chr(160) => '',
);
$str = utf8_decode($str);
$str = strtr($str,$tabReplace);
return utf8_encode($str);
}
/**
** Déplacement d'un fichier. Retourne false en cas d'erreur.
**
** @param string $from
** @param string $to
** @return bool
**/
function move($from, $to) {
return (copy($from, $to) and unlink($from));
}
/** Converti une IP en nombre
**
** @param string $ip Adresse IP
** @return integer
**/
function getIpNumber($ip) {
$tab=explode('.', $ip);
return (($tab[0]*256*256*256) + ($tab[1]*256*256) + ($tab[2]*256) + ($tab[3]));
}
/** Vérifie si une IP est dans une plage du type 192.168.3.1-192.168.3.10
**
** @param string $plage_1 Plage IP de début
** @param string $plage_2 Plage IP de fin
** @param string $ip Adresse IP à tester
** @return boolean
**/
function in_plage($plage_1,$plage_2,$ip){
$ip2=getIpNumber($ip);
if ($ip2>=getIpNumber($plage_1) && $ip2<=getIpNumber($plage_2))
if ( $type_variable == 'A' )
if ( is_string($variable) == true )
return true;
else
return false;
}
return $erreur;
/** Controle si une adresse IP est dans une liste des IP communiquées sous la forme 192.168.3.5-192.68.3.10;192.168.3.*;192.168.3.10
**
** @param string $strPlageIP La plage d'adresses IP
** @param string $adresseIP L'adresse IP à tester
** @return boolean
**/
function checkPlagesIp($strPlageIP, $adresseIP) {
$connected=false;
$tabIpAllowed=explode(';', trim($strPlageIP));
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
$tabIpAllowed=array();
foreach ($tabIpAllowed as $ip) {
$tabPlages=explode('-', $ip);
// C'est une plage d'adresse '-'
if (isset($tabPlages[1]))
$connected=in_plage($tabPlages[0],$tabPlages[1],$adresseIP);
else {
// C'est une adresse avec ou sans masque '*'
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $adresseIP) )
$connected=true;
}
if ($connected) break;
}
if (count($tabIpAllowed)==0) return false;
elseif (!$connected) {
return false;
elseif ( $type_variable == 'N')
{
for ($i=0; $i < strlen((string)$variable); $i++)
{
$car = substr((string)$variable,$i,1);
if ($car<'0' || $car>'9')
return $erreur;
}
return true;
}
return $erreur;
}
function adapteOCtets($size) {
$kb = 1024; // Kilobyte
$mb = 1024 * $kb; // Megabyte
$gb = 1024 * $mb; // Gigabyte
$tb = 1024 * $gb; // Terabyte
if($size==0) return '0';
else if($size < $kb) return $size.'o';
else if($size < $mb) return round($size/$kb,2).'ko';
else if($size < $gb) return round($size/$mb,2).'Mo';
else if($size < $tb) return round($size/$gb,2).'Go';
else return round($size/$tb,2).'To';
}
/**
** Enregistrer une information dans la log
**
** @param string $debugLevel E=Error, W=Warning, N=Notice, I=Info, D=Debug
** @param string $message Message d'erreur à inscrire dans la log
** @param integer $line __LINE__
** @param string $file __FILE__
** @param string $function __FUNCTION__
** @param string $class __CLASS___
**/
function debugLog($debugLevel, $message, $line, $file, $function, $class) {
if (!file_exists(LOG_PATH.'/debug.log')) {
$fp=@fopen(LOG_PATH.'/debug.log', 'a');
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Memory;Message'.EOL);
} else
$fp=@fopen(LOG_PATH.'/debug.log', 'a');
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
@fclose($fp);
if ($debugLevel=='E'){
if (!file_exists(LOG_PATH.'/debugError.log')) {
$fp=@fopen(LOG_PATH.'/debugError.log', 'a');
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Message'.EOL);
} else
$fp=fopen(LOG_PATH.'/debugError.log', 'a');
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
@fclose($fp);
//die($message);
}
}
function prepareString($str) {
$tabReplace = array(
'œ' => "oe",
''.chr(160) => '',
);
$str = utf8_decode($str);
$str = strtr($str,$tabReplace);
return utf8_encode($str);
}
/**
** Déplacement d'un fichier. Retourne false en cas d'erreur.
**
** @param string $from
** @param string $to
** @return bool
**/
function move($from, $to) {
return (copy($from, $to) and unlink($from));
}
/** Converti une IP en nombre
**
** @param string $ip Adresse IP
** @return integer
**/
function getIpNumber($ip) {
$tab=explode('.', $ip);
return (($tab[0]*256*256*256) + ($tab[1]*256*256) + ($tab[2]*256) + ($tab[3]));
}
/** Vérifie si une IP est dans une plage du type 192.168.3.1-192.168.3.10
**
** @param string $plage_1 Plage IP de début
** @param string $plage_2 Plage IP de fin
** @param string $ip Adresse IP à tester
** @return boolean
**/
function in_plage($plage_1,$plage_2,$ip){
$ip2=getIpNumber($ip);
if ($ip2>=getIpNumber($plage_1) && $ip2<=getIpNumber($plage_2))
return true;
else
return false;
}
/** Controle si une adresse IP est dans une liste des IP communiquées sous la forme 192.168.3.5-192.68.3.10;192.168.3.*;192.168.3.10
**
** @param string $strPlageIP La plage d'adresses IP
** @param string $adresseIP L'adresse IP à tester
** @return boolean
**/
function checkPlagesIp($strPlageIP, $adresseIP) {
$connected=false;
$tabIpAllowed=explode(';', trim($strPlageIP));
if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='')
$tabIpAllowed=array();
foreach ($tabIpAllowed as $ip) {
$tabPlages=explode('-', $ip);
// C'est une plage d'adresse '-'
if (isset($tabPlages[1]))
$connected=in_plage($tabPlages[0],$tabPlages[1],$adresseIP);
else {
// C'est une adresse avec ou sans masque '*'
if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $adresseIP) )
$connected=true;
}
if ($connected) break;
}
if (count($tabIpAllowed)==0) return false;
elseif (!$connected) {
return false;
}
return true;
}
/**
* @return bool