Import lib Metier : injection de la base de données pour limiter le nombre de connection

This commit is contained in:
Michael RICOIS 2015-01-26 15:39:05 +00:00
parent a227320021
commit 8a46e059cf
25 changed files with 3530 additions and 3522 deletions

View File

@ -545,9 +545,17 @@ class MBodacc
'Secr.taires?'=>1600,
'Liquidateurs?'=>1900,
);
protected $iDb;
public function __construct()
public function __construct($db = null)
{
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
/** Charge toute la table des tribunaux pour ne pas lancer systématiquement des requètes sur le serveur MySQL
** lors des intégrations de Bodacc
**/
@ -581,8 +589,7 @@ class MBodacc
if ( file_exists($cache) ) {
return include $cache;
} else {
$iDb=new WDB();
$rep=$iDb->select('tribunaux', 'triCode, triNom, triCP, triSiret', "triCode IS NOT NULL");
$rep=$this->iDb->select('jo.tribunaux', 'triCode, triNom, triCP, triSiret', "triCode IS NOT NULL");
$tabTribunaux=array();
foreach($rep as $k=>$trib) {
$dep=substr($trib['triCP'],0,2)*1;
@ -601,8 +608,7 @@ class MBodacc
if ( file_exists($cache) ) {
return include $cache;
} else {
$iDb=new WDB();
$rep=$iDb->select('bodacc_fonctions', 'codeFct, libelle', '1');
$rep=$this->iDb->select('jo.bodacc_fonctions', 'codeFct, libelle', '1');
$tabRet=array();
foreach($rep as $tabFct)
$tabRet[$tabFct['codeFct']*1]=$tabFct['libelle'];
@ -628,8 +634,7 @@ class MBodacc
{
$tabTribunaux = array();
$iDb = new WDB();
$rep = $iDb->select('tribunaux t, tribunauxInsee i',
$rep = $this->iDb->select('jo.tribunaux t, jo.tribunauxInsee i',
't.triId, t.triIdSup, i.CodeInsee, t.triCode, t.triType, t.triNom, t.triCP, LPAD(t.triTel,10,0) AS triTel,
LPAD(t.triFax,10,0) AS triFax, t.triWeb, t.triMail, t.triSiret, t.triAdrNum, t.triAdrIndRep,
t.triAdrTypeVoie, t.triAdrVoie, t.triAdrComp, t.triVille, t.triStatut, t.triDateCessation, t.triCommentaire,
@ -659,15 +664,14 @@ class MBodacc
t.triAdrTypeVoie, t.triAdrVoie, t.triAdrComp, t.triVille, t.triStatut, t.triDateCessation, t.triCommentaire,
t.triNumGreffe';
$iDb = new WDB();
if ( $dep<96 ) {
$rep = $iDb->select(
'tribunaux t', $fields,
$rep = $this->iDb->select(
'jo.tribunaux t', $fields,
"t.triCP BETWEEN '".$dep."000' AND '".$dep."999' ORDER BY t.triType ASC", false, MYSQL_ASSOC
);
} else {
$rep = $iDb->select(
'tribunaux t', $fields,
$rep = $this->iDb->select(
'jo.tribunaux t', $fields,
"t.triCP BETWEEN '".$dep."00' AND '".$dep."99' ORDER BY t.triType ASC", false, MYSQL_ASSOC
);
}
@ -682,8 +686,7 @@ class MBodacc
/** Donne la cours d'appel d'un tribunal par son code **/
public function getTribunalIdCA($codeTribunal)
{
$iDb = new WDB();
$rep = $iDb->select('tribunaux', 'triIdSup', "triCode='$codeTribunal'");
$rep = $this->iDb->select('jo.tribunaux', 'triIdSup', "triCode='$codeTribunal'");
return $rep[0][0];
}
@ -699,8 +702,7 @@ class MBodacc
if ( file_exists($cache) ) {
return include $cache;
} else {
$iDb=new WDB();
$rep=$iDb->select('tabEvenements', 'codEven, libEven, Bodacc_Code, Rubrique, version, lienEtab', '1', false, MYSQL_ASSOC);
$rep = $this->iDb->select('jo.tabEvenements', 'codEven, libEven, Bodacc_Code, Rubrique, version, lienEtab', '1', false, MYSQL_ASSOC);
$tabRet=array();
foreach($rep as $k=>$even) {
//$tabTmp=array($trib['codEven']=>$trib['libEven']);
@ -724,8 +726,7 @@ class MBodacc
if ( file_exists($cache) ) {
return include $cache;
} else {
$iDb=new WDB();
$rep=$iDb->select('bodacc_devises', 'libDeviseBodacc, devIso', '1', false, MYSQL_ASSOC);
$rep=$this->iDb->select('jo.bodacc_devises', 'libDeviseBodacc, devIso', '1', false, MYSQL_ASSOC);
$tabDevises=array();
foreach($rep as $k=>$trib) {
$tabTmp=array($trib['libDeviseBodacc']=>$trib['devIso']);
@ -935,8 +936,7 @@ class MBodacc
** @return bool
**/
public function addDeviseBodacc($strDevise, $deviseIso) {
$iDb=new WDB();
if (!$iDb->insert('bodacc_devises', array( 'libDeviseBodacc'=>$strDevise,
if (!$this->iDb->insert('jo.bodacc_devises', array( 'libDeviseBodacc'=>$strDevise,
'devIso'=>$deviseIso,
'dateInsert'=>date('YmdHis')),true))
return false;
@ -1068,12 +1068,11 @@ class MBodacc
/** Détermine les NOMs et PRENOMs dans une chaine de caractère
**/
function getNomPrenomGenre($strNomPrenom) {
$iDb=new WDB('npaipp');
$noms=$prenoms=$genre='';
$tabMots=preg_split('/( +|\.+)/', $strNomPrenom);
//print_r($tabMots);
foreach ($tabMots as $i=>$prenom) {
$tabPrenoms=$iDb->select('pp_prenoms', 'prenom, genre, mixte, nbTot',
$tabPrenoms=$this->iDb->select('npaipp.pp_prenoms', 'prenom, genre, mixte, nbTot',
"prenom='".addslashes($prenom)."' AND nbTot>100 ORDER BY nbTot DESC",
false, MYSQL_ASSOC);
if (count($tabPrenoms)>0) {
@ -1095,13 +1094,12 @@ class MBodacc
}
function getNumPageAnnonce($bodaccCode, $annee, $num) {
function getNumPageAnnonce($bodaccCode, $annee, $num)
{
$tabRet=array();
$iDb=new WDB();
$bodacc=$iDb->select('bodacc',
'Bodacc_Code, Bodacc_Annee_Parution, Bodacc_Num, Num_Annonce, Tribunal_Dept, Tribunal_Code, Rubrique_Bodacc, length(annonce) as Long',
"Bodacc_Code='$bodaccCode' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$num");
$bodacc=$this->iDb->select('jo.bodacc',
'Bodacc_Code, Bodacc_Annee_Parution, Bodacc_Num, Num_Annonce, Tribunal_Dept, Tribunal_Code, Rubrique_Bodacc, length(annonce) as Long',
"Bodacc_Code='$bodaccCode' AND Bodacc_Annee_Parution=$annee AND Bodacc_Num=$num");
foreach ($bodacc as $k=>$ann) {
$tabRet[$k]=array( 'BodaccCode'=>$ann['Bodacc_Code'],
@ -1177,10 +1175,10 @@ class MBodacc
return 0;
}
function getJALparDep($dep) {
function getJALparDep($dep)
{
$tabRet=array();
$iDb=new WDB();
$rep=$iDb->select('tabJAL', 'id, dep, nomJal, siteWeb, email, adresse, cp, ville, tel, fax, parution, aboAnnuel, infos',
$rep=$this->iDb->select('jo.tabJAL', 'id, dep, nomJal, siteWeb, email, adresse, cp, ville, tel, fax, parution, aboAnnuel, infos',
"dep=$dep", false, MYSQL_ASSOC);
foreach($rep as $k=>$jal) {
$tabRet[]=$jal;
@ -1188,21 +1186,21 @@ class MBodacc
return $tabRet;
}
function getListeJalCollecte() {
function getListeJalCollecte()
{
$tabRet=array();
$iDb=new WDB();
$rep=$iDb->select('tabJAL', 'id, nomJal', 'sedDateAbo<>0 GROUP BY nomJal ORDER BY nomJal ASC', false, MYSQL_ASSOC);
$rep=$this->iDb->select('jo.tabJAL', 'id, nomJal', 'sedDateAbo<>0 GROUP BY nomJal ORDER BY nomJal ASC', false, MYSQL_ASSOC);
foreach($rep as $k=>$jal) {
$tabRet['_'.$jal['id']]=$jal['nomJal'];
}
return $tabRet;
}
function getActiviteReelle($siren, $fj) {
$iDb=new WDB();
function getActiviteReelle($siren, $fj)
{
$strEvenVtLg=" AND Rubrique<>'ventes' AND typeEven NOT LIKE '%2700%' AND typeEven NOT LIKE '%2701%' AND typeEven NOT LIKE '%2702%' AND typeEven NOT LIKE '%2703%' AND typeEven NOT LIKE '%2710%' AND typeEven NOT LIKE '%2720%' AND typeEven NOT LIKE '%2721%' AND typeEven NOT LIKE '%2725%' AND typeEven NOT LIKE '%2730%' AND typeEven NOT LIKE '%2740%' AND typeEven NOT LIKE '%2750%' AND typeEven NOT LIKE '%2800%' AND typeEven NOT LIKE '%2840%' AND typeEven NOT LIKE '%2850%' AND typeEven NOT LIKE '%2851%' AND typeEven NOT LIKE '%2860%' AND typeEven NOT LIKE '%2870%' AND typeEven NOT LIKE '%2875%' AND typeEven NOT LIKE '%2880%' AND typeEven NOT LIKE '%2881%' AND typeEven NOT LIKE '%2885%' AND typeEven NOT LIKE '%2890%' AND typeEven NOT LIKE '%2891%' AND typeEven NOT LIKE '%2892%' ";
/** Recherche de l'activité réelle **/
$bodacc=$iDb->select( 'bodacc_detail', 'Activite', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$bodacc=$this->iDb->select('jo.bodacc_detail', 'Activite', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap=@$bodacc[0];
if ($fj<7000 || $fj>7999)
$tabRet['Activite']=trim(/*preg_replace("/Adjonction.{1,7}activit(?:e|é)(?:.|)\:", '', */$annCap['Activite']);//);
@ -1213,14 +1211,14 @@ class MBodacc
$fj>9000 && $fj<9400) ) {
$siretMin=(''.$siren.'00000')*1;
$siretMax=(''.$siren.'99999')*1;
$bodacc=$iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "siren=$siren AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$bodacc=$this->iDb->select('jo.asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "siren=$siren AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap=@$bodacc[0];
$tabRet['Activite']=trim($annCap['Assoc_NObjet']);
if ($tabRet['Activite']=='') $tabRet['Activite']=trim($annCap['Assoc_Objet']);
if ($tabRet['Web']=='') $tabRet['Web']=trim($annCap['Assoc_Web']);
if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']);
} elseif ($tabRet['Activite']=='' && ($fj<7000 || $fj>7999)) {
$bodaccHisto=$iDb->select( 'historiques.entrep e, historiques.texte x',
$bodaccHisto=$this->iDb->select( 'historiques.entrep e, historiques.texte x',
'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt',
"e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231 AND x.annonceTxt LIKE '%ctivit%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", false, MYSQL_ASSOC);
if (count($bodaccHisto)>0) {
@ -1242,7 +1240,8 @@ class MBodacc
return $tabRet['Activite'];
}
function getCodeFormeJur($strFJ) {
function getCodeFormeJur($strFJ)
{
global $tabCjBodacc;
if (count($tabCjBodacc)<1)
require_once 'Metier/bodacc/configMBodacc.php';

View File

@ -691,7 +691,7 @@ class MInsee
}
$this->tabCodeVoie = $this->getTabCodeVoie();
$this->iBodacc = new MBodacc();
$this->iBodacc = new MBodacc($this->iDb);
}
/**
@ -1837,7 +1837,7 @@ class MInsee
$nbTot=$tabTmp[0][0];
$listeEtab=$this->iDb->select('etablissements e',
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, LPAD(e.siren, 9, 0) as siren, LPAD(e.nic, 5, 0), e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, LPAD(e.adr_num,4,0) AS adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.adr_comp, LPAD(e.adr_cp,5,0) AS adr_cp, e.adr_ville, e.adr_dep, LPAD(e.adr_com,3,0) AS adr_com, LPAD(e.tel,10,0) AS tel, LPAD(e.fax,10,0) AS fax, e.cj, e.ape_etab, e.ape_entrep,".
"CONCAT(e.siren, e.nic) as siret, e.actif",
"TEL=$id OR FAX=$id $filtreActif ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC);
@ -1871,7 +1871,7 @@ class MInsee
$nbTot=$tabTmp[0][0];
$listeEtab=$this->iDb->select('etablissements e',
"'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ".
"e.raisonSociale, e.enseigne, e.sigle, LPAD(e.adr_num,4,0) AS adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ".
"e.adr_comp, LPAD(e.adr_cp,5,0) AS adr_cp, e.adr_ville, e.adr_dep, LPAD(e.adr_com,3,0) AS adr_com, LPAD(e.tel,10,0) AS tel, LPAD(e.fax,10,0) AS fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ".
"CONCAT(e.siren, e.nic) as siret, e.actif",
"autre_id IN ('$strId') $filtreActif $strDep ORDER BY siege DESC $limit", false, MYSQL_ASSOC);
@ -2218,7 +2218,7 @@ class MInsee
/** Si le siren est valide, on part chez Infogreffe **/
if (count($listeEtab)==0 && $this->valideSiren($siren) && $accesDist) {
$iGeffes=new MGreffes();
$iGeffes=new MGreffes($this->iDb);
$etabG=$iGeffes->getIdentite($siren);
if ($etabG) {
$adr=$this->structureVoie($etabG['Adresse']);
@ -2399,7 +2399,7 @@ class MInsee
$tdeb=microtime(1);
}
$iAmabis = new MAmabis();
$iAmabis = new MAmabis($this->iDb);
$repAmabis = $iAmabis->getZonage($etab['adr_num'],$etab['adr_btq'],$etab['adr_typeVoie'],$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']), false, 'TEST', false);
$duree=round(microtime(1)-$tdeb,3);
@ -2424,7 +2424,7 @@ class MInsee
$tdeb=microtime(1);
}
$iTva = new MTva($siren, $accesDist);
$iTva = new MTva($siren, $accesDist, $this->iDb);
$vatNumber = $iTva->vatNumber;
$vatDefined = $iTva->vatDefined;
@ -3306,13 +3306,13 @@ class MInsee
$tabRet['numGreffe'] = $etabG['NumGreffe'];
$tabRet['numRC'] = $etabG['NumRC2'];
$tabRet['Enseigne'] = $etabG['Enseigne'];
$iRncs=new MRncs();
$iRncs=new MRncs($this->iDb);
$tabRet['Tribunal'] = $iRncs->getCodeBodaccTribunal($etabG['NumGreffe']);
}
if ($tabRet['Siege']==1 && $tabRet['Actif'] && $tabRet['Tribunal']=='')
$tabRet['Tribunal']=$tabCodeTri;
$rep=$this->iDb->select('rncs_entrep', 'siren, sirenValide, actif, numGreffe, triCode, triId, numRC, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, dateRad*1 AS dateRadNum, capitalType, capitalCent, provisoires, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren", false, MYSQL_ASSOC);
$rep = $this->iDb->select('rncs_entrep', 'siren, sirenValide, actif, numGreffe, triCode, triId, numRC, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, dateRad*1 AS dateRadNum, capitalType, capitalCent, provisoires, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren", false, MYSQL_ASSOC);
$entrep=$rep[0];
if (isset($entrep['numGreffe'])) { //ETRANGER//
$tabRet['numGreffe'] = $entrep['numGreffe'];
@ -3525,7 +3525,7 @@ class MInsee
}
$iGeffes = new MGreffes($this->iDb);
$iRncs = new MRncs();
$iRncs = new MRncs($this->iDb);
$etabG = $iGeffes->getIdentite($siren);
if($this->debugtime) {
@ -3682,8 +3682,8 @@ class MInsee
}
/** Recherche des infos boursières **/
$iBourse=new MBourse($siren);
$bourse=$iBourse->getInfosBourse($siren);
$iBourse = new MBourse($siren, $this->iDb);
$bourse = $iBourse->getInfosBourse($siren);
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
'nombreTitres'=>$bourse['nombreTitres'],
'capitalisation'=>$bourse['close']*$bourse['nombreTitres'],
@ -3788,7 +3788,6 @@ class MInsee
}
}
$iBodacc=new MBodacc();
$bodaccHisto=$this->iDb->select(
'historiques.entrep e, historiques.texte x',
'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt',
@ -3803,7 +3802,7 @@ class MInsee
($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) {
if (preg_match('/Administration(?:.|)\:(.*)(?:Adresse.*|Commentaires?|Activit(?:e|é)|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.)(?:.|)\:/Uisu', $ann['annonceTxt'], $matches)) {
$iDir=0;
$tabAdministration = $iBodacc->getDirigeants($matches[1]);
$tabAdministration = $this->iBodacc->getDirigeants($matches[1]);
foreach ($tabAdministration as $tabDir) {
$nom = trim(strtr(preg_replace('/ +/',' ', $tabDir['nom']), array(
"Modification d'"=>'',
@ -3825,7 +3824,7 @@ class MInsee
if ($nom<>'') {
$tabRet[] = array(
'Fonction' => $tabDir['fonction'],
'Titre' => $iBodacc->getFctDir($tabDir['fonction']),//.' ('.$tabDir['fonction'].')',
'Titre' => $this->iBodacc->getFctDir($tabDir['fonction']),//.' ('.$tabDir['fonction'].')',
'Societe' => $tabDir['rs'],
'Nom' => $nom,
'Prenom' => $tabDir['prenom'],

View File

@ -5,10 +5,17 @@ ini_set('default_socket_timeout', 30);
class MAmabis
{
protected $client;
protected $iDb;
public function __construct()
public function __construct($db = null)
{
$this->client = new SoapClient(null, array(
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
$this->client = new SoapClient(null, array(
'location' => 'http://sw2.amabis.com:5100/',
'uri' => 'http://www.amabis.com/ns.xsd',
'connection_timeout' => 2,
@ -48,14 +55,13 @@ class MAmabis
}
}
$iDb=new WDB();
$adresse=addslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie")));
$ville=addslashes($ville);
$majForcee=false;
$ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs, rnvpStatut, rnvpCorr, rnvpTrt, adr3, adr4, adr5, adr6, adr7, numVoieA, indRepA,
typeVoieAlong, typeVoieAcourt, corpVoie, motDir, motDirD, libVoieSec, adr4n32, adr4n38, clePostaleVoie,
secteur, cleRoutage, cpx, cleAd, codPaysIso2, codPaysIso3, libPays, codeInsee',
$ret = $this->iDb->select('jo.zonage', 'zus, zru, zfu, cucs, rnvpStatut, rnvpCorr, rnvpTrt, adr3, adr4, adr5, adr6, adr7, numVoieA, indRepA,
typeVoieAlong, typeVoieAcourt, corpVoie, motDir, motDirD, libVoieSec, adr4n32, adr4n38, clePostaleVoie,
secteur, cleRoutage, cpx, cleAd, codPaysIso2, codPaysIso3, libPays, codeInsee',
"address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC);
$zones=@$ret[0];
if (count($ret)>0) {
@ -198,14 +204,14 @@ class MAmabis
$adresseL=addslashes($adresse);
$villeL=addslashes($ville);
$ret=$iDb->select('zonage', 'dateInsert*1 as dateInsert', "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false);
$ret = $this->iDb->select('jo.zonage', 'dateInsert*1 as dateInsert', "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false);
$dateInsert=@$ret[0]['dateInsert']*1;
$iDb->update('zonage', array_merge($tabUpdate,array('dateInsert'=>$dateInsert)), "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false);
$this->iDb->update('jo.zonage', array_merge($tabUpdate,array('dateInsert'=>$dateInsert)), "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false);
//echo "Mise à jour de l'adresse du $dateInsert pour address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'".EOL;
}
if ($dateInsert==0) {
$iDb->insert('zonage', array_merge($tabInsert,$tabUpdate), false);
$this->iDb->insert('jo.zonage', array_merge($tabInsert,$tabUpdate), false);
//echo "Insertion de l'adresse (".$zones['rnvpStatut'].")!".EOL;
}
@ -227,7 +233,7 @@ class MAmabis
'source' => 'Amabis',
'dateInsert'=> date('YmdHis'),
);
$iDb->insert('villesCP', $tabInsert, false);
$this->iDb->insert('jo.villesCP', $tabInsert, false);
//echo mysql_error().EOL;
}
@ -257,7 +263,7 @@ class MAmabis
/** Zonages AFR et ZRR
**/
$codeInsee=substr($codeRivoli,0,5);
$ret=$iDb->select( 'zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
$ret = $this->iDb->select('jo.zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC);
$tabRep['ZRR']=$tabRep['AFR']='NON';
foreach ($ret as $zones)
switch ($zones['typeZone']) {

View File

@ -489,7 +489,7 @@ class MBilans
}
if ($accesPartenaire) {
$iGreffe = new MGreffes();
$iGreffe = new MGreffes($this->iDb);
$tabRet=$tabRet2=$iGreffe->getListeBilans($this->siren);
} else {
$tabRet=$tabRet2=array();
@ -598,7 +598,7 @@ class MBilans
$bilan = null;
$iGreffe = new MGreffes();
$iGreffe = new MGreffes($this->iDb);
$ret = $this->iDb->select('bilans',
'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes, partenaire, id, confidentiel, dateInsert',
"siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesimeDB' $strSansBilansWeb", false, MYSQL_ASSOC);

View File

@ -3,13 +3,22 @@ require_once 'framework/common/curl.php';
class MBourse
{
var $siren=false;
public function __construct($siren=0) {
$this->siren=$siren;
protected $siren = false;
protected $iDb;
public function __construct($siren=0, $db = null)
{
$this->siren = $siren;
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
public function getLibSource($source) {
public function getLibSource($source)
{
switch ($source) {
case 'B': return 'Business Wire'; break;
case 'H': return 'Hugin'; break;
@ -25,7 +34,8 @@ class MBourse
** @param string $isin
** @return bool
**/
function isIsin($isin) {
function isIsin($isin)
{
if (strlen(trim($isin))) {
$cle = substr($isin, -1);
$isinLeft = substr($isin, 0, strlen($isin)-1);
@ -52,12 +62,12 @@ class MBourse
** @param integer $siren
** @return string
**/
function getCodeIsin($siren=false) {
$iDb=new WDB();
function getCodeIsin($siren=false)
{
if (!$siren)
$siren=$this->siren;
$tabTmp=$iDb->select('infos_entrep', 'isin', "siren=$siren AND isin<>''", false, MYSQL_ASSOC);
$tabTmp = $this->iDb->select('jo.infos_entrep', 'isin', "siren=$siren AND isin<>''", false, MYSQL_ASSOC);
return trim(@$tabTmp[0]['isin']);
}
@ -66,9 +76,9 @@ class MBourse
** @param string $isin Code ISIN
** @return integer
**/
function getCodeSiren($isin) {
$iDb=new WDB();
$tabTmp=$iDb->select('infos_entrep', 'siren', "isin='$isin' AND siren<>0", false, MYSQL_ASSOC);
function getCodeSiren($isin)
{
$tabTmp = $this->iDb->select('jo.infos_entrep', 'siren', "isin='$isin' AND siren<>0", false, MYSQL_ASSOC);
return trim($tabTmp[0]['siren']);
}
@ -85,15 +95,14 @@ class MBourse
$isin = $this->getCodeIsin($siren);
$tabRet=array();
if ($isin!='') {
$iDb = new WDB('presse');
$sqlID = '';
if (null !== $id) {
$sqlID=" AND id=$id ";
}
$bodacc=$iDb->select(
'articles',
$bodacc = $this->iDb->select(
'presse.articles',
'id, companyName, companyIsin, companySiren, companyWebSite, pressReleaseDate, pressReleaseTitle, '.
'pressReleaseText, pressReleaseHtml, pressReleaseAttachments, pressReleaseUrl, source, dateInsert',
"companyIsin='$isin' $sqlID ORDER BY pressReleaseDate DESC", true, MYSQL_ASSOC);
@ -134,9 +143,9 @@ class MBourse
** @param integer $siren
** @return unknown
**/
function getInfosBourse($siren=false) {
function getInfosBourse($siren=false)
{
global $timer;
$iDb=new WDB('sdv1');
if (!$siren)
$siren=$this->siren;
@ -145,19 +154,20 @@ class MBourse
$timer['infosBoursieres-getCodeIsin']=microtime(true);
$tabRet=array();
if ($isin<>'') {
$tabRes=$iDb->select( 'bourse_isin b, bourse_cours c',
'siren, raisonSociale, adresse, effectif, code_sicovam, code_mnemo, code_bloomberg, code_datastream, code_isin, logo, code_ric, '.
'dateIntroduction, dateDerAG, dateRadiation, autre_isin, eligibleSRD, eligiblePEA, nombreTitres, tel1, tel2, fax1, fax2, web, mail, '.
'marche, placeCotation, description, secteur, activite, activiteDet, dirigeants, actionnaires, chiffresTrim, '.
'c.autre, c.`date`, c.`heure`, c.`open` , c.`high` , c.`low` , c.`close` , c.`volume`',
"code_isin='$isin' /*OR siren=$siren)*/ AND b.code_isin=c.isin AND c.autre IN('','e','f','g','m','s','u') ORDER BY c.`date` DESC, c.`heure` DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabRes = $this->iDb->select(
'sdv1.bourse_isin b, sdv1.bourse_cours c',
'siren, raisonSociale, adresse, effectif, code_sicovam, code_mnemo, code_bloomberg, code_datastream, code_isin, logo, code_ric, '.
'dateIntroduction, dateDerAG, dateRadiation, autre_isin, eligibleSRD, eligiblePEA, nombreTitres, tel1, tel2, fax1, fax2, web, mail, '.
'marche, placeCotation, description, secteur, activite, activiteDet, dirigeants, actionnaires, chiffresTrim, '.
'c.autre, c.`date`, c.`heure`, c.`open` , c.`high` , c.`low` , c.`close` , c.`volume`',
"code_isin='$isin' /*OR siren=$siren)*/ AND b.code_isin=c.isin AND c.autre IN('','e','f','g','m','s','u') ORDER BY c.`date` DESC, c.`heure` DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabRet=$tabRes[0];
$timer['infosBoursieres-infosIsin']=microtime(true);
$tabRes=$iDb->select( 'bourse_cours',
'min(close) AS coursMin, avg(close) AS coursMoy, max(close) AS coursMax',
"isin='$isin' GROUP BY isin", false, MYSQL_ASSOC);
$tabRes = $this->iDb->select('sdv1.bourse_cours',
'min(close) AS coursMin, avg(close) AS coursMoy, max(close) AS coursMax',
"isin='$isin' GROUP BY isin", false, MYSQL_ASSOC);
$tabTmp=$tabRes[0];
$tabRet['coursMin']=$tabTmp['coursMin'];
$tabRet['coursMoy']=$tabTmp['coursMoy'];

View File

@ -1,8 +1,8 @@
<?php
class MCadastre
{
var $siren=false;
var $iDb;
protected $siren = false;
protected $iDb;
/** Droits des locaux **/
private static $tabCodeDroit=array(
@ -122,9 +122,14 @@ class MCadastre
'VI'=>'Vignes',
);
public function __construct($siren=0) {
$this->siren=$siren;
$this->iDb=new WDb('sdv1');
public function __construct($siren=0, $db = null)
{
$this->siren = $siren;
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
/**
@ -137,7 +142,7 @@ class MCadastre
if (!$siren) $siren=$this->siren;
$tabTmp=$this->iDb->select(
'cad_perloc l, cad_permor e',
'sdv1.cad_perloc l, sdv1.cad_permor e',
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
l.CCODRO, l.CCOCOM, l.CCOPRF, l.CCOSEC, l.DNUPLA, l.DNUBAT, l.DESC, l.DNIV, l.DPOR, l.CCONLC, l.CCOAFF0, l.DSUPOD0, l.CCOAFF1, l.DSUPOD1, l.CCOAFF2, l.DSUPOD2, l.CCOAFF3, l.DSUPOD3, l.CCOAFF4, l.DSUPOD4, l.CCOAFF5, l.DSUPOD5, l.CCOAFF6, l.DSUPOD6, l.CCOAFF7, l.DSUPOD7, l.CCOAFF8, l.DSUPOD8, l.CCOAFF9, l.DSUPOD9, l.CCODEP, l.DLICOM, l.CCORIV, l.CNAVOI, l.DLIVOI, l.DNUVOI, l.DLTNUV',
"e.DSIREN=$siren AND e.INTCIF=l.INTCIF AND e.DNUPER=l.DNUPER", false, MYSQL_ASSOC);
@ -216,7 +221,7 @@ class MCadastre
$siren=$this->siren;
$tabTmp=$this->iDb->select(
'cad_perpar p, cad_permor e',
'sdv1.cad_perpar p, sdv1.cad_permor e',
'e.INTCIF, e.DNUPER, e.CCOGRM, e.DDENPM, e.DSIPMO, e.DFORME, e.FILLER, e.DSIREN, e.DLIGN3, e.DLIGN4, e.DLIGN5, e.DLIGN6, e.CCODEP, e.CCOCOM,
p.CCODRO, p.CCOCOM, p.CCOPRF, p.CCOSEC, p.DNUPLA, p.DCNPAR, p.DSGRPF0, p.DCNSUF0, p.DSGRPF1, p.DCNSUF1, p.DSGRPF2, p.DCNSUF2, p.DSGRPF3, p.DCNSUF3, p.DSGRPF4, p.DCNSUF4, p.DSGRPF5, p.DCNSUF5, p.DSGRPF6, p.DCNSUF6, p.DSGRPF7, p.DCNSUF7, p.DSGRPF8, p.DCNSUF8, p.DSGRPF9, p.DCNSUF9, p.CCODEP, p.DLICOM, p.CCORIV, p.CNAVOI, p.DLIVOI, p.DNUVOI, p.DLTNUV',
"e.DSIREN=$siren AND e.INTCIF=p.INTCIF AND e.DNUPER=p.DNUPER", false, MYSQL_ASSOC);

View File

@ -74,10 +74,8 @@ class MCoface {
public $tabFil=array();
public $tabEtab=array();
function __construct($siren) {
// $iDb=new WDB();
function __construct($siren)
{
$referer='';
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;
$page=getUrl($url, '', '', $referer, false, 'www.cofacerating.fr', '', 10);

View File

@ -1,123 +0,0 @@
<?
require_once 'framework/common/curl.php';
require_once 'framework/common/dates.php';
require_once 'Metier/partenaires/classMEuridile.php';
class MBilans {
public $siren;
function __construct($siren) {
$this->siren=$siren;
}
function __destruct() {}
/** Adapter cette classe pour qu'elle utilise la classe MEuridile et la base Bilans Local **/
/** Liste des dirigeants actifs
**/
function listeDirigeants() {
$iDb2=new WDB('jo');
$ret=$iDb2->select( 'bilans',
'typeBilan, dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaieOrigine',
"siren='$this->siren' ORDER BY dateExercice DESC");
$tabRet=array();
$iDb=new WDB('jo');
$ret2=$iDb->select( 'bodacc_detail',
'Bodacc_Date_Parution, dateEffet, typeEven',
//Num_Annonce, RC, raisonSociale, FJ, adrSiegeNum, adrSiegeIndRep, adrSiegeTypVoie, adrSiegeLibVoie, adrSiegeComp1, adrSiegeComp2, codePostalSiege, villeSiege, Bodacc_Num
"siren='$this->siren' AND Rubrique='comptes' ORDER BY dateEffet DESC");
$dateDerDepot=WDate::dateT('Y-m-d','Ymd',@$ret2[0]['dateEffet'])*1;
$dateDerExercice=$ret[0]['dateExercice']*1;
if ($dateDerDepot<>0) {
$this->dernierExerciceDepose = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['dateEffet']);
$this->dernierExerciceDeposeLe = WDate::dateT('Y-m-d','d/m/Y',@$ret2[0]['Bodacc_Date_Parution']);
}
/*
//echo date('Y/m/d - H:i:s') ." - Dernier depot le ". $ret2[0]['Bodacc_Date_Parution'] .", dernier en base = $dateDerExercice !<br/>\n";
if ( $dateDerDepot>$dateDerExercice ||
( $dateDerDepot==0 && $dateDerExercice<date('Ymd', mktime(0,0,0, date('m')-18, date('d'), date('Y'))) ) ) {*/
$rncs=new MEuridile();
$tabRet=$rncs->listBilans($this->siren);
//}
foreach ($ret as $i=>$bil) {
$millesime=WDate::dateT('Ymd','d/m/Y',$bil['dateExercice']);
$tabRet[$bil['typeBilan'].$millesime]=array(
'dateProvPartenaire'=>$bil['dateProvPartenaire'],
'dureeExercice' =>$bil['dureeExercice'],
'dateExercicePre' =>$bil['dateExercicePre'],
'dureeExercicePre' =>$bil['dureeExercicePre'],
'monnaie' =>$bil['monnaieOrigine'],
'source' =>1,
);
}
return $tabRet;
}
function getBilan($millesime='', $typeBilan='N', $refPart=0) {
$millesime=WDate::dateT('d/m/Y','Ymd',$millesime);
$iDb2=new WDB('insee');
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesime'", true);
$bilan=$ret[0];
if (count($ret)==0) {
$rncs=new MEuridile($this->siren);
$tabBilan=$rncs->getBilan($refPart);
if ($tabBilan) {
$strPostes='';
foreach ($tabBilan['POSTES'] as $poste=>$valeur)
$strPostes.="$poste=$valeur;";
$tabInsert=array( 'siren' =>$this->siren,
'dateProvPartenaire'=>$tabBilan['DATE_FRAICHE_BILAN'],
'dateExercice' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE']),
'dateExercicePre' =>WDate::dateT('d/m/Y','Ymd',$tabBilan['DATE_CLOTURE_PRE']),
'dureeExercice' =>$tabBilan['DUREE_MOIS'],
'dureeExercicePre' =>$tabBilan['DUREE_MOIS_PRE'],
'monnaie' =>$tabBilan['MONNAIE'],
'typeBilan' =>$tabBilan['TYPE_BILAN'],
'monnaieOrigine' =>$tabBilan['MONNAIE_ORI'],
'unite' =>$tabBilan['MONNAIE_LIV_UNITE'],
'postes' =>$strPostes,
'partenaire' =>2,
);
$iDb2->insert('bilans', $tabInsert);
$ret=$iDb2->select('bilans', 'dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, typeBilan, monnaieOrigine, unite, postes', "siren='$this->siren' AND typeBilan='$typeBilan' AND dateExercice='$millesime'");
$bilan=$ret[0];
}
}
$tabBilan=array();
$tabBilan['SIREN'] = $this->siren;
$tabBilan['DATE_FRAICHE_BILAN'] = $bilan['dateProvPartenaire']; // SSAAMMJJ
$tabBilan['DATE_CLOTURE'] = $bilan['dateExercice']; // SSAAMMJJ
$tabBilan['DATE_CLOTURE_PRE'] = $bilan['dateExercicePre']; // SSAAMMJJ
$tabBilan['DUREE_MOIS'] = $bilan['dureeExercice'];
$tabBilan['DUREE_MOIS_PRE'] = $bilan['dureeExercicePre'];
$tabBilan['MONNAIE'] = $bilan['monnaie'];
$tabBilan['CONSOLIDE'] = $bilan['typeBilan']; // C = Bilan consolidé
$tabBilan['MONNAIE_ORI'] = $bilan['monnaieOrigine'];
$tabBilan['MONNAIE_LIV_UNITE'] = $bilan['unite'];
if ($bilan['monnaie']=='EUR') $monnaie='&euro;'; else $monnaie=$bilan['monnaie'];
switch (strtoupper($bilan['unite'])) {
case 'K': $unite='K'; break;
case 'U':
case ' ':
case '' : $unite=''; break;
case 'M': $unite='M'; break;
default: die('Unite Bilan ('. $bilan['unite'] .') non prise en charge !'); break;
}
$tabBilan['devise'] = /*$unite.*/$monnaie;
$tabTmp=explode(';', $bilan['postes']);
foreach ($tabTmp as $i=>$strTmp) {
$tabTmp2=explode('=', $strTmp);
if (isset($tabTmp2[1]))
if ($unite=='K' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1') $tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000;
elseif ($unite=='M' && $tabTmp2[0]<>'YP' && $tabTmp2[0]<>'YP1') $tabBilan[$tabTmp2[0]]=$tabTmp2[1]*1000000;
else $tabBilan[$tabTmp2[0]]=$tabTmp2[1];
}
return $tabBilan;
}
}
?>

View File

@ -27,44 +27,44 @@ class MFacto
public $DELAIPAYp='';
public $DELAIPAY_MMAA='';
private $tabInfoCS=array(
'_00'=>array('risque'=>0,'type'=>'OK', 'libInt'=>'Néant', 'libExt'=>'Aucune difficulté significative ne nous a été signalée'),
'_10'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé BDF', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_11'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Retard de paiement - Prorogation', 'libExt'=>'A suivre. Retard(s) de paiement(s) signalé(s)'),
'_12'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé Groupe Facto', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_13'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé BDF (sup. à limite)', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_15'=>array('risque'=>3,'type'=>'PR', 'libInt'=>'PRIVILEGES URSSAF', 'libExt'=>'A surveiller. Présence de privilèges'),
'_16'=>array('risque'=>3,'type'=>'PR', 'libInt'=>'AUTRES PRIVILEGES', 'libExt'=>'A surveiller. Présence de Privilèges'),
'_20'=>array('risque'=>4,'type'=>'BL', 'libInt'=>'LIQUIDATION JUDICIAIRE', 'libExt'=>'Liquidation Judiciaire'),
'_21'=>array('risque'=>1,'type'=>'BC', 'libInt'=>'CESSATION D\'ACTIVITE', 'libExt'=>'A suivre. Informations terrain. Risque de fermeture'),
'_22'=>array('risque'=>1,'type'=>'BD', 'libInt'=>'RADIATION RCS', 'libExt'=>'Radiation du RCS'),
'_23'=>array('risque'=>1,'type'=>'BG', 'libInt'=>'LOCATION GERANCE', 'libExt'=>'Prise en location Gérance'),
'_24'=>array('risque'=>2,'type'=>'RG', 'libInt'=>'GROUPE EN DIFFICULTE', 'libExt'=>'A suivre. Entreprise(s) du groupe à suivre'),
'_25'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'INFORMATIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_26'=>array('risque'=>4,'type'=>'BP', 'libInt'=>'PLAN DE CESSION / DE REDRESSEMENT ', 'libExt'=>'Plan de cession/redressement'),
'_27'=>array('risque'=>4,'type'=>'BR', 'libInt'=>'REDRESSEMENT JUDICIAIRE', 'libExt'=>'Redressement Judiciaire'),
'_28'=>array('risque'=>4,'type'=>'BH', 'libInt'=>'HOMOLOGATION CONCILIATION / REG.AMIABLE', 'libExt'=>'Conciliation, Homologation ou règlement amiable'),
'_29'=>array('risque'=>1,'type'=>'BF', 'libInt'=>'FUSION - ABSORPTION', 'libExt'=>'Fusion/Absorption'),
'_30'=>array('risque'=>3,'type'=>'IP', 'libInt'=>'MAUVAISE COTE BDF : .8 ou .9', 'libExt'=>"Présence d'impayé(s)"),
'_31'=>array('risque'=>1,'type'=>'TC', 'libInt'=>'CESSATION ANNONCEE', 'libExt'=>'Fin d\'activité programmée'),
'_33'=>array('risque'=>4,'type'=>'BS', 'libInt'=>'PROCEDURE DE SAUVEGARDE JUGEMENT', 'libExt'=>'Procédure de Sauvegarde'),
'_34'=>array('risque'=>4,'type'=>'BV', 'libInt'=>'PLAN DE SAUVEGARDE', 'libExt'=>'Plan de sauvegarde'),
'_35'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'ANALYSE FINANCIERE NEGATIVE', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_36'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'BILAN NEGATIF', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_37'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'TRESORERIE SERREE', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_39'=>array('risque'=>2,'type'=>'DEF', 'libInt'=>'PREVISIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_43'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'LC SFAC', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
'_45'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'REFUS SFAC DOM-TOM', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
//'_47'=>array('risque'=>2,'type'=>'LC', 'libInt'=>'LISTE CONFIDENTIELLE LEASER', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
'_50'=>array('risque'=>2,'type'=>'KO', 'libInt'=>'LIENS AVEC UNE ORGANISATION TERRORISTE', 'libExt'=>'Attention, liens internationaux très risqués'),
private $tabInfoCS = array(
'_00' => array('risque'=>0,'type'=>'OK', 'libInt'=>'Néant', 'libExt'=>'Aucune difficulté significative ne nous a été signalée'),
'_10' => array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé BDF', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_11' => array('risque'=>3,'type'=>'IP', 'libInt'=>'Retard de paiement - Prorogation', 'libExt'=>'A suivre. Retard(s) de paiement(s) signalé(s)'),
'_12' => array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé Groupe Facto', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_13' => array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayé BDF (sup. à limite)', 'libExt'=>"A surveiller. Présence d'impayé(s)"),
'_15' => array('risque'=>3,'type'=>'PR', 'libInt'=>'PRIVILEGES URSSAF', 'libExt'=>'A surveiller. Présence de privilèges'),
'_16' => array('risque'=>3,'type'=>'PR', 'libInt'=>'AUTRES PRIVILEGES', 'libExt'=>'A surveiller. Présence de Privilèges'),
'_20' => array('risque'=>4,'type'=>'BL', 'libInt'=>'LIQUIDATION JUDICIAIRE', 'libExt'=>'Liquidation Judiciaire'),
'_21' => array('risque'=>1,'type'=>'BC', 'libInt'=>'CESSATION D\'ACTIVITE', 'libExt'=>'A suivre. Informations terrain. Risque de fermeture'),
'_22' => array('risque'=>1,'type'=>'BD', 'libInt'=>'RADIATION RCS', 'libExt'=>'Radiation du RCS'),
'_23' => array('risque'=>1,'type'=>'BG', 'libInt'=>'LOCATION GERANCE', 'libExt'=>'Prise en location Gérance'),
'_24' => array('risque'=>2,'type'=>'RG', 'libInt'=>'GROUPE EN DIFFICULTE', 'libExt'=>'A suivre. Entreprise(s) du groupe à suivre'),
'_25' => array('risque'=>2,'type'=>'DEF', 'libInt'=>'INFORMATIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_26' => array('risque'=>4,'type'=>'BP', 'libInt'=>'PLAN DE CESSION / DE REDRESSEMENT ', 'libExt'=>'Plan de cession/redressement'),
'_27' => array('risque'=>4,'type'=>'BR', 'libInt'=>'REDRESSEMENT JUDICIAIRE', 'libExt'=>'Redressement Judiciaire'),
'_28' => array('risque'=>4,'type'=>'BH', 'libInt'=>'HOMOLOGATION CONCILIATION / REG.AMIABLE', 'libExt'=>'Conciliation, Homologation ou règlement amiable'),
'_29' => array('risque'=>1,'type'=>'BF', 'libInt'=>'FUSION - ABSORPTION', 'libExt'=>'Fusion/Absorption'),
'_30' => array('risque'=>3,'type'=>'IP', 'libInt'=>'MAUVAISE COTE BDF : .8 ou .9', 'libExt'=>"Présence d'impayé(s)"),
'_31' => array('risque'=>1,'type'=>'TC', 'libInt'=>'CESSATION ANNONCEE', 'libExt'=>'Fin d\'activité programmée'),
'_33' => array('risque'=>4,'type'=>'BS', 'libInt'=>'PROCEDURE DE SAUVEGARDE JUGEMENT', 'libExt'=>'Procédure de Sauvegarde'),
'_34' => array('risque'=>4,'type'=>'BV', 'libInt'=>'PLAN DE SAUVEGARDE', 'libExt'=>'Plan de sauvegarde'),
'_35' => array('risque'=>2,'type'=>'DEF', 'libInt'=>'ANALYSE FINANCIERE NEGATIVE', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_36' => array('risque'=>2,'type'=>'DEF', 'libInt'=>'BILAN NEGATIF', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_37' => array('risque'=>2,'type'=>'DEF', 'libInt'=>'TRESORERIE SERREE', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_39' => array('risque'=>2,'type'=>'DEF', 'libInt'=>'PREVISIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_43' => array('risque'=>2,'type'=>'LC', 'libInt'=>'LC SFAC', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
'_45' => array('risque'=>2,'type'=>'LC', 'libInt'=>'REFUS SFAC DOM-TOM', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
//'_47' =>array('risque'=>2,'type'=>'LC', 'libInt'=>'LISTE CONFIDENTIELLE LEASER', 'libExt'=>"A suivre. Garantie d'assurance crédit limitée"),
'_50' => array('risque'=>2,'type'=>'KO', 'libInt'=>'LIENS AVEC UNE ORGANISATION TERRORISTE', 'libExt'=>'Attention, liens internationaux très risqués'),
//Nouveaux regroupements GE
'_I' =>array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayés', 'libExt'=>"A surveiller. Présence d'impayé(s) dans les 12 derniers mois"),
'_P' =>array('risque'=>3,'type'=>'PR', 'libInt'=>'PRIVILEGES', 'libExt'=>'A surveiller. Présence de privilèges dans les 24 derniers mois'),
'_D' =>array('risque'=>2,'type'=>'DEF', 'libInt'=>'PREVISIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_T' =>array('risque'=>2,'type'=>'LC', 'libInt'=>'LC Quelconque', 'libExt'=>"Nombreuses demandes d'avis de crédit"),
'_I' => array('risque'=>3,'type'=>'IP', 'libInt'=>'Impayés', 'libExt'=>"A surveiller. Présence d'impayé(s) dans les 12 derniers mois"),
'_P' => array('risque'=>3,'type'=>'PR', 'libInt'=>'PRIVILEGES', 'libExt'=>'A surveiller. Présence de privilèges dans les 24 derniers mois'),
'_D' => array('risque'=>2,'type'=>'DEF', 'libInt'=>'PREVISIONS NEGATIVES', 'libExt'=>'A suivre. Informations terrain récentes négatives'),
'_T' => array('risque'=>2,'type'=>'LC', 'libInt'=>'LC Quelconque', 'libExt'=>"Nombreuses demandes d'avis de crédit"),
);
private $tabTranches=array(
private $tabTranches = array(
0=>6,
30=>36,
60=>66,
@ -74,7 +74,7 @@ class MFacto
180=>999,
);
private $tabMontants=array(
private $tabMontants = array(
1=>500,
2=>2000,
10=>10000,
@ -85,9 +85,13 @@ class MFacto
999=>999999
);
function __construct()
public function __construct($db = null)
{
$this->iDb = new WDB('sdv1');
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
public function setTypeFic($typeFic)
@ -139,7 +143,7 @@ class MFacto
public function getCoteSpeciale($siren)
{
$ret=$this->iDb->select(
'ge_cs2',
'sdv1.ge_cs2',
'siren, cs, dateFin, dateInsert, dateConf',
"siren=$siren AND (dateSuppr=0 OR dateConf>dateSuppr) AND (dateFin=0 OR dateFin>NOW()) AND cs NOT IN (20,22,27,33,34) ORDER BY dateConf DESC, dateInsert DESC", false, MYSQL_ASSOC);
$tabRet=array();
@ -166,7 +170,7 @@ class MFacto
public function getCoteSpecialeOld($siren)
{
$ret=$this->iDb->select( 'ge_cs c LEFT JOIN ge_acheteurs a ON a.NUMACH=c.NUMGFH',
$ret=$this->iDb->select( 'sdv1.ge_cs c LEFT JOIN sdv1.ge_acheteurs a ON a.NUMACH=c.NUMGFH',
'DATMAJ1, NUMGFH, CSAVAN, CSAPRE, SIRENE',
"a.SIRENE=$siren ORDER BY a.SIRENE ASC, c.DATMAJ1 DESC", false, MYSQL_ASSOC);
$tabRet=array();
@ -196,7 +200,7 @@ class MFacto
else // En mois par défaut
$strGroupBy="GROUP BY mois HAVING nbPieces>2 ";
$ret=$this->iDb->select( 'ge_paiements p LEFT JOIN ge_acheteurs a ON a.NUMACH=p.NUMACH',
$ret=$this->iDb->select( 'sdv1.ge_paiements p LEFT JOIN sdv1.ge_acheteurs a ON a.NUMACH=p.NUMACH',
"p.NUMACH, DATE_FORMAT(p.DATPIE, '%Y-%m') AS mois,
CONCAT(DATE_FORMAT(p.DATPIE,'%Y'),'-',IF(DATE_FORMAT(p.DATPIE,'%m')<4,1,IF(DATE_FORMAT(p.DATPIE,'%m')<7,2,IF(DATE_FORMAT(p.DATPIE,'%m')<10,3,4)))) AS trimestre,
count(*) AS nbPieces,

View File

@ -39,7 +39,6 @@ curl_multi_remove_handle($ch1);
curl_multi_remove_handle($ch2);
curl_multi_close($mh);
// $iDb=new WDB();
$referer='';
$url='http://www.cofacerating.fr/portail/entreprise_identite/identite.asp?ip=pagespro&lg=fr&nsiren='.$siren;

View File

@ -19,11 +19,17 @@ class MMarques {
private $iInsee;
public $siren;
function __construct() {
//$this->partGetSession();
function __construct($db = null)
{
$this->partConnection();
$this->iDb=new WDB('bopi');
$this->iInsee=new MInsee();
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
$this->iInsee=new MInsee($this->iDb);
}
function __destruct() {
@ -41,7 +47,7 @@ class MMarques {
$strSql="1 ";
if ($siren>0) $strSql.="AND sirenDeposant=$siren ";
if ($idDepot>0) $strSql.="AND numeroMarque=$idDepot ";
$res=$this->iDb->select('marques', 'nomMarque, rayonMarque, detailDeposant, sirenDeposant, dateDepot, lieuDepot, numeroMarque, classesMarque, periMarque, detailDeposant, detailMandataire, detailStatut, dateExpir, idObjetImg, idObjetPdf', "$strSql ORDER BY dateDepot DESC");
$res=$this->iDb->select('bopi.marques', 'nomMarque, rayonMarque, detailDeposant, sirenDeposant, dateDepot, lieuDepot, numeroMarque, classesMarque, periMarque, detailDeposant, detailMandataire, detailStatut, dateExpir, idObjetImg, idObjetPdf', "$strSql ORDER BY dateDepot DESC");
if (count($res)>0) {
foreach ($res as $i=>$marque) {
if ($marque['nomMarque']=='&nbsp;') $nomMarque='(figurative)';
@ -77,7 +83,7 @@ class MMarques {
$marques[$i]['UrlLien']='';
//Produits et Services
$resPS=$this->iDb->select('marques_classes', 'remarque', "numeroMarque=$idDepot");
$resPS=$this->iDb->select('bopi.marques_classes', 'remarque', "numeroMarque=$idDepot");
if (count($resPS)>0) {
$txt = array();
foreach ($resPS as $item) {
@ -87,7 +93,7 @@ class MMarques {
}
//Historique
$resHisto=$this->iDb->select('marques_histo', 'histo2', "numeroMarque=$idDepot ORDER BY dat DESC");
$resHisto=$this->iDb->select('bopi.marques_histo', 'histo2', "numeroMarque=$idDepot ORDER BY dat DESC");
if (count($resHisto)>0) {
$txt = array();
foreach ($resHisto as $item) {
@ -320,7 +326,7 @@ une erreur sur cette notice">Signalez une erreur sur cette notice</a></p>
else
$tabMarque['typeMarque']='Semi-Figurative';
/*
Une marque verbale
Une marque verbale
composée d'un ou plusieurs termes qui peuvent s'écrire ou se prononcer,
c'est à dire par exemple un nom de naissance ou patronymique (par exemple : Guy Degrenne), une dénomination arbitraire créée de toutes pièces (par exemple : Yoplait) , un mot détourné de son sens, un slogan (par exemple : Parce que vous le valez bien)
@ -428,17 +434,17 @@ Une marque figurative
$tabInsert['dateInsert']=$dateInsert;
//print_r($tabInsert);
//die();
$ret=$this->iDb->insert('marques', $tabInsert);
$ret=$this->iDb->insert('bopi.marques', $tabInsert);
if (!$ret && mysql_errno()<>1062) {
//echo "Erreur INSERT 'marques' : ".mysql_error().EOL;
//die();
} elseif (mysql_errno()==1062) {
unset($tabInsert['dateInsert']);
if (!$this->iDb->update('marques', $tabInsert, "numeroMarque='".$tabMarque['numeroMarque']."' AND rayonMarque='".$tabMarque['rayonMarque']."'", false)) {
if (!$this->iDb->update('bopi.marques', $tabInsert, "numeroMarque='".$tabMarque['numeroMarque']."' AND rayonMarque='".$tabMarque['rayonMarque']."'", false)) {
//echo "Erreur UPDATE 'marques' : ".mysql_error().EOL;
//die();
}
$ret=$this->iDb->select('marques', 'id', "numeroMarque='".$tabMarque['numeroMarque']."' AND rayonMarque='".$tabMarque['rayonMarque']."'", false, MYSQL_ASSOC);
$ret=$this->iDb->select('bopi.marques', 'id', "numeroMarque='".$tabMarque['numeroMarque']."' AND rayonMarque='".$tabMarque['rayonMarque']."'", false, MYSQL_ASSOC);
$ret=$ret[0]['id'];
$updateTodo=true;
}
@ -451,7 +457,7 @@ Une marque figurative
'remarque'=>$classe,
'dateInsert'=>$dateInsert,
);
$ret2=$this->iDb->insert('marques_classes', $tabInsert);
$ret2=$this->iDb->insert('bopi.marques_classes', $tabInsert);
if (!$ret2 && mysql_errno()<>1062) {
echo "Erreur 'marques_classes' : ".mysql_error().EOL;
print_r($tabInsert);
@ -459,7 +465,7 @@ Une marque figurative
die("Erreur 'marques_classes' : ".mysql_error().EOL);
} elseif ($updateTodo && mysql_errno()==1062) {
unset($tabInsert['dateInsert']);
$this->iDb->update('marques_classes', $tabInsert, "id=$ret AND id2=$i", false);
$this->iDb->update('bopi.marques_classes', $tabInsert, "id=$ret AND id2=$i", false);
}
}
@ -471,7 +477,7 @@ Une marque figurative
'pays'=>$pays,
'dateInsert'=>$dateInsert,
);
$ret2=$this->iDb->insert('marques_pays', $tabInsert);
$ret2=$this->iDb->insert('bopi.marques_pays', $tabInsert);
if (!$ret2 && mysql_errno()<>1062) {
echo "Erreur 'marques_pays' : ".mysql_error().EOL;
print_r($tabInsert);
@ -479,7 +485,7 @@ Une marque figurative
die("Erreur 'marques_pays' : ".mysql_error().EOL);
} elseif ($updateTodo && mysql_errno()==1062) {
unset($tabInsert['dateInsert']);
$this->iDb->update('marques_pays', $tabInsert, "id=$ret AND id2=$i", false);
$this->iDb->update('bopi.marques_pays', $tabInsert, "id=$ret AND id2=$i", false);
}
}
@ -491,7 +497,7 @@ Une marque figurative
'priorite'=>$prio,
'dateInsert'=>$dateInsert,
);
$ret2=$this->iDb->insert('marques_priorite', $tabInsert);
$ret2=$this->iDb->insert('bopi.marques_priorite', $tabInsert);
if (!$ret2 && mysql_errno()<>1062) {
echo "Erreur 'marques_priorite' : ".mysql_error().EOL;
print_r($tabInsert);
@ -499,7 +505,7 @@ Une marque figurative
die("Erreur 'marques_priorite' : ".mysql_error().EOL);
} elseif ($updateTodo && mysql_errno()==1062) {
unset($tabInsert['dateInsert']);
$this->iDb->update('marques_priorite', $tabInsert, "id=$ret AND id2=$i", false);
$this->iDb->update('bopi.marques_priorite', $tabInsert, "id=$ret AND id2=$i", false);
}
}
@ -509,7 +515,7 @@ Une marque figurative
$tabInsert['id2']=$i;
$tabInsert['numeroMarque']=$tabMarque['numeroMarque'];
$tabInsert['dateInsert']=$dateInsert;
$ret2=$this->iDb->insert('marques_histo', $tabInsert);
$ret2=$this->iDb->insert('bopi.marques_histo', $tabInsert);
if (!$ret2 && mysql_errno()<>1062) {
echo "Erreur 'marques_histo' : ".mysql_error().EOL;
print_r($tabInsert);
@ -517,7 +523,7 @@ Une marque figurative
die("Erreur 'marques_histo' : ".mysql_error().EOL);
} elseif ($updateTodo && mysql_errno()==1062) {
unset($tabInsert['dateInsert']);
$this->iDb->update('marques_classes', $tabInsert, "id=$ret AND id2=$i", false);
$this->iDb->update('bopi.marques_classes', $tabInsert, "id=$ret AND id2=$i", false);
}
}
@ -630,10 +636,10 @@ Une marque figurative
'nbMarques' => $nbMarques,
'dateInsert'=> date('YmdHis'),
);
$ret=$this->iDb->insert('infos_bopi', $tabInsert);
$ret=$this->iDb->insert('bopi.infos_bopi', $tabInsert);
if (!$ret && mysql_errno()<>1062) die("Erreur 'infos_bopi' 1 : ".mysql_error().EOL);
foreach ($tabMarques as $i=>$tabInsert) {
$ret=$this->iDb->insert('infos_bopi_marques', $tabInsert);
$ret=$this->iDb->insert('bopi.infos_bopi_marques', $tabInsert);
if (!$ret && mysql_errno()<>1062) die("Erreur 'infos_bopi' 1 : ".mysql_error().EOL);
}
}

View File

@ -1,7 +1,6 @@
<?
class MOrias {
<?php
class MOrias
{
private $referer ='';
private $body = '';
private $header = '';
@ -15,15 +14,22 @@ class MOrias {
public $annee=0;
public $erreur='';
function __construct($accesDist=true) {// $adresse, $cp, $ville, $pays='France') {
$this->accesDist=$accesDist;
$this->iDb=new WDb('sdv1');
function __construct($accesDist = true, $db = null)
{
$this->accesDist = $accesDist;
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
}
public function getMaxOrias($annee=0) {
public function getMaxOrias($annee=0)
{
if ($annee*1>0 && $annee*1<100) {
$this->annee='20'.$annee;
$annee++;
$annee++;
$strWhere="(numOrias/1000000)<=$annee";
} elseif ($annee*1>1900 && $annee*1<9999) {
$this->annee=$annee;
@ -34,12 +40,13 @@ class MOrias {
$this->annee=date('Y')*1;
}
$ret=$this->iDb->select('orias','MAX(numOrias) AS numOrias', $strWhere, false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.orias','MAX(numOrias) AS numOrias', $strWhere, false, MYSQL_ASSOC);
//die($strWhere);
return sprintf('%08d',$ret[0]['numOrias']);
}
public function getInfosOrias($siren, $numOrias=0) {
public function getInfosOrias($siren, $numOrias=0)
{
//die('numOrias 1:"'.$numOrias.'"');
if ($siren*1>1000)
$strWhere="siren=$siren";
@ -55,11 +62,11 @@ class MOrias {
echo "==== SELECT siren, id, nom, cp, ville, adresse, numOrias FROM orias WHERE $strWhere;".EOL;
echo "=================================================================================================".EOL;
*/
$ret=$this->iDb->select('orias','siren, id, nom, cp, ville, adresse, numOrias, numOriasAttribue', $strWhere, false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.orias','siren, id, nom, cp, ville, adresse, numOrias, numOriasAttribue', $strWhere, false, MYSQL_ASSOC);
if (!$this->force && count($ret)>0) {
$this->enCache=true;
$tabRet=$ret[0];//array();
$ret=$this->iDb->select('orias','categorie, cat, dateInscription, typeStatut, rcsVille, rcsCode, rcsSiren, contact, encaissement, nature, paysPresta, paysEtab',$strWhere, false, MYSQL_ASSOC);
$ret=$this->iDb->select('sdv1.orias','categorie, cat, dateInscription, typeStatut, rcsVille, rcsCode, rcsSiren, contact, encaissement, nature, paysPresta, paysEtab',$strWhere, false, MYSQL_ASSOC);
foreach ($ret as $i=>$tabTmp)
$tabRet['categories'][]=$tabTmp;
//die('numOrias 3:"'.$numOrias.'"');
@ -90,7 +97,7 @@ class MOrias {
'menu%3AiasSearchForm%3AiasSearch'=>'menu%3AiasSearchForm%3AiasSearch',
);
} else {
// Recherche avec Siren
// Recherche avec Siren
$url='http://www.orias.fr/orias/public/rechercheavance.html';
$post=array('j_id_id45'=>'j_id_id45',
'j_id_id45%3Aj_id_id52'=>'',
@ -101,7 +108,7 @@ class MOrias {
'j_id_id45%3Aj_id_id175'=>'',
'javax.faces.ViewState'=>$this->codeRetour,
'j_id_id45%3Aj_id_id203'=>'j_id_id45%3Aj_id_id203');
$this->referer='http://www.orias.fr/orias/public/list.html';
$this->referer='http://www.orias.fr/orias/public/list.html';
}
randsleep(1,2);
$page=getUrl($url, $this->cookie, $post, $this->referer, false, '', '', 15);
@ -116,7 +123,7 @@ class MOrias {
$this->erreur='Numéro Orias inexistant';
// On enregistre ce numéro comme non attribué si < au dernier numéro attribué
if ($numOrias<$this->getMaxOrias())
$this->iDb->insert('orias', $tabInsert);
$this->iDb->insert('sdv1.orias', $tabInsert);
}
return false;
}
@ -126,7 +133,7 @@ class MOrias {
$this->referer=$url;
$this->body=$page['body'];
echo "Recherche par Orias : url=$url".EOL;
die(print_r($page));
die(print_r($page));
} /* else { */
// Liste contenant l'entreprise
@ -187,7 +194,7 @@ class MOrias {
if (count($tabTmp)==1) {
$tabInsert=array_merge($tabRet, array('dateInsert'=>date('YmdHis')));
//print_r($tabInsert);
$this->iDb->insert('orias', $tabInsert);
$this->iDb->insert('sdv1.orias', $tabInsert);
}
$tabRet['categories']=array();
continue;
@ -235,7 +242,7 @@ class MOrias {
$tabCat['rcsCode']=trim(strtr(strip_tags($matches[2]), array(' '=>'','&nbsp;'=>'',chr(160)=>'',"\r"=>'',"\n"=>'')));
$tabCat['rcsSiren']=trim($matches[3]);
if ($siren==0) $tabRet['siren']=$tabCat['rcsSiren'];
}
}
/*<td align="right">Contact</td>
<td></td>
<td><strong> Fran&ccedil;ois Meunier
@ -272,10 +279,10 @@ class MOrias {
unset($tabInsert['categories']);
$tabInsert=array_merge($tabInsert, $tabCat, array('dateInsert'=>date('YmdHis')));
//print_r($tabInsert);
$this->iDb->insert('orias', $tabInsert);
$this->iDb->insert('sdv1.orias', $tabInsert);
//echo $tmpCat[$i];
}
}
}
return $tabRet;
}
}

View File

@ -53,7 +53,7 @@ class MRncs
public $maxDemJour=10;
public $matching=NULL;
function __construct($db = null)
public function __construct($db = null)
{
if ( $db === null ) {
$this->iDb = new WDB();
@ -67,12 +67,14 @@ class MRncs
$this->tabJugements = $this->getTabJugements();
}
public function getLibFctDir($codeFonctionDirectionRncs) {
public function getLibFctDir($codeFonctionDirectionRncs)
{
$codeFonctionDirectionRncs=$codeFonctionDirectionRncs*1;
return $this->tabFctDir[$codeFonctionDirectionRncs]['lib'];
}
public function getCodFctBodaccFctDir($codeFonctionDirectionRncs) {
public function getCodFctBodaccFctDir($codeFonctionDirectionRncs)
{
$codeFonctionDirectionRncs=$codeFonctionDirectionRncs*1;
return $this->tabFctDir[$codeFonctionDirectionRncs]['codeSd'];
}

View File

@ -1,25 +1,6 @@
<?php
ini_set('soap.wsdl_cache_enabled', 0);
class AmaSoapClient extends SoapClient {
function __doRequest($request, $location, $action, $version) {
/* $request = strtr($request, array('<ns1:'=>'<ama:',
'</ns1:'=>'</ama:',
// '<param0 xsi:type="xsd:string">'=>'',
'xmlns:ns1="http://www.amabis.com/ama.xsd"'=>'xmlns:ama="http://www.amabis.com/ama.xsd"',
// '</param0>'=>'',
// '&lt;'=>'<',
// '&gt;'=>'>',
)
);*/
return parent::__doRequest($request, $location, $action, $version);
}
}
class classMSigVille {
class classMSigVille
{
private $client;
private $url='http://sig.ville.gouv.fr/recherche-adresses-zus-zfu-quartiers-des-cucs';

View File

@ -7,8 +7,9 @@ class MTva
public $errmsg = ''; // Message de l'erreur en cas d'erreur
private $siren;
protected $iDb;
public function __construct($siren, $accesDist=true)
public function __construct($siren, $accesDist=true, $db = null)
{
$sirenIn = $siren*1;
if ( $sirenIn<000001000 ) {
@ -16,6 +17,12 @@ class MTva
$this->vatDefined = false;
return false;
}
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
$siren = str_pad($siren, 9, '0', STR_PAD_LEFT);
@ -32,8 +39,7 @@ class MTva
return false;
}
$iDb=new WDB('sdv1');
$info = $iDb->select('siren_tva', "cle, DATE_FORMAT(dateMod,'%Y%m%d') as DateMAJ", "siren=$siren", false, MYSQL_ASSOC);
$info = $this->iDb->select('sdv1.siren_tva', "cle, DATE_FORMAT(dateMod,'%Y%m%d') as DateMAJ", "siren=$siren", false, MYSQL_ASSOC);
$tab=$info[0];
if (count($tab)>0) {
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMTva sur $siren en cache", print_r($tab, true));
@ -83,8 +89,8 @@ class MTva
if (preg_match('/Yes, valid VAT number/i', $body)) {
$tabInsert=array('siren'=>$siren,'cle'=>$cle, 'duree'=>$duree);
$tabUpdate=array('cle'=>$cle, 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
if (!$this->iDb->insert('sdv1.siren_tva', $tabInsert))
if (!$this->iDb->update('sdv1.siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
//echo date ('Y/m/d - H:i:s') ." - Ligne $k/$nbk, N°TVA FR $cle $siren validé .".$eol;
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
@ -104,8 +110,8 @@ class MTva
} else {
$tabInsert=array('siren'=>$siren,'cle'=>'NULL', 'duree'=>$duree);
$tabUpdate=array('cle'=>'NULL', 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
if (!$this->iDb->insert('sdv1.siren_tva', $tabInsert))
if (!$this->iDb->update('sdv1.siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren vérification non disponible ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";
@ -116,8 +122,8 @@ class MTva
} else {
$tabInsert=array('siren'=>$siren,'cle'=>'NULL', 'duree'=>$duree);
$tabUpdate=array('cle'=>'NULL', 'duree'=>$duree);
if (!$iDb->insert('siren_tva', $tabInsert))
if (!$iDb->update('siren_tva', $tabUpdate, "siren=$siren"))
if (!$this->iDb->insert('sdv1.siren_tva', $tabInsert))
if (!$this->iDb->update('sdv1.siren_tva', $tabUpdate, "siren=$siren"))
debugLog('W', "Siren $siren, numéro de TVA = FR $cle $siren, impossible de MAJ la clef ($duree s) - ERREUR MySql n°". mysql_errno() .' : '. mysql_error(), __LINE__, __FILE__, __FUNCTION__, __CLASS__);
debugLog('I', "Siren $siren, numéro de TVA = FR $cle $siren non attribué ($duree s)", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$this->vatNumber="FR$cle$siren";

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,6 @@
<?php
class ICotation {
class ICotation
{
var $reTrtAuto;
public $tabBilan=array();
@ -20,8 +19,16 @@ class ICotation {
public $societeEnBourse=false;
public $valeurCCF=0;
protected $iDb;
function __construct( $tabBilan, $retraitementAutomatique=true ) {
function __construct($tabBilan, $retraitementAutomatique = true, $db = null)
{
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
$this->reTrtAuto = $retraitementAutomatique;
$this->tabBilan = $tabBilan;
@ -1633,7 +1640,8 @@ class ICotation {
$this->tabR[6][17]=array('0:4.7','4.7:5.5','5.5:6','6:6.8','6.8:7.9','7.9:8.9','8.9:10','10:11.1','11.1:12.1','12.1:');
}
function getTypeEntreprise($naf, $trancheEffectif) {
function getTypeEntreprise($naf, $trancheEffectif)
{
$this->tpe=true;
if (@$this->tabBilan['YP']>19)
$this->tpe=false; // PME (petites et moyennes entreprises) : de 19 <20> 499 salari<72>s
@ -1646,7 +1654,8 @@ class ICotation {
$this->tpe=false;
}
function calculProvisionsPourRisque () {
function calculProvisionsPourRisque ()
{
return (@$this->tabBilan['DP']+@$this->tabBilan['DQ'])*.5;
}
@ -1659,7 +1668,8 @@ class ICotation {
**
** @return double EBE en unit<EFBFBD> du bilan
**/
function calculEBE () {
function calculEBE ()
{
return $this->calculValeurAjoutee() + @$this->tabBilan['FO'] - @$this->tabBilan['FX'] - ( @$this->tabBilan['FY'] + @$this->tabBilan['FZ'] ) ;
}
@ -1685,12 +1695,13 @@ class ICotation {
**
** @return double CA en unit<EFBFBD> du Bilan
**/
function calculChiffreAffaires ($naf, $retraitement=false, $exPre=false) {
// Vente de Marchandises FC
// Production vendue biens FF 8914928 9008212
// Production vendue services FI 6648419 6451252
// Chiffres d'affaires nets FL 15563347 15459457
// Subventions d'exploitation FO 272189 161333
function calculChiffreAffaires ($naf, $retraitement=false, $exPre=false)
{
// Vente de Marchandises FC
// Production vendue biens FF 8914928 9008212
// Production vendue services FI 6648419 6451252
// Chiffres d'affaires nets FL 15563347 15459457
// Subventions d'exploitation FO 272189 161333
if ($naf=='741J' || $naf=='6420Z' || $naf=='7010Z')
if ($exPre)
$autre=@$this->tabBilan['GJ1'] + @$this->tabBilan['GK1'] + @$this->tabBilan['GL1'];
@ -1711,7 +1722,8 @@ class ICotation {
return @$this->tabBilan['FC'] + @$this->tabBilan['FF'] + @$this->tabBilan['FI'] + $autre;
}
function calculEvolutionCA($naf, $retraitement=false) {
function calculEvolutionCA($naf, $retraitement=false)
{
$ca=$this->calculChiffreAffaires ($naf, $retraitement);
return ($ca - $this->calculChiffreAffaires ($naf, $retraitement, true))/$ca*100;
}
@ -1788,16 +1800,16 @@ class ICotation {
else $x3=0;
/** Effet de levier = Rentabilit<69> financi<63>re - Rentabilit<69> Economique */
$x4 = $this->calculRentabiliteFin() - $this->calculRentabiliteEco();
/** Cr<EFBFBD>dit client = D<>lai d<>couvert client (en jours) ? **/
/** Crédit client = Délai découvert client (en jours) ? **/
$x5 = $this->calculDelaisClients();
/** EBE / VA en % **/
$denom=$this->calculValeurAjoutee();
if ($denom<>0)
$x6 = 100 * $this->calculEBE() / $denom;
else $x6=0;
/** D<EFBFBD>lai fournisseurs (en jours) **/
/** Délai fournisseurs (en jours) **/
$x7 = $this->calculDelaisFournisseurs();
/** Cr<EFBFBD>ances douteuses / cr<63>ances clients **/
/** Créances douteuses / créances clients **/
$denom= @$this->tabBilan['BX'] + @$this->tabBilan['BZ'] ;
if ($denom<>0)
$x8 = 100 * @$this->tabBilan['VA'] / $denom;
@ -1971,15 +1983,15 @@ class ICotation {
if (@$this->tabBilan['BF']<>0)
$i=360 * ( @$this->tabBilan['BJ'] / $this->tabBilan['BF'] );
else $i=0;
/** Taux de Valeur Ajout<EFBFBD>e */
/** Taux de Valeur Ajoutée */
if (@$this->tabBilan['FL']<>0)
$j=100 * ( @$this->tabBilan['FL'] + @$this->tabBilan['FM'] + @$this->tabBilan['FN'] - @$this->tabBilan['FS']
- @$this->tabBilan['FT'] - @$this->tabBilan['FU'] - @$this->tabBilan['FV'] - @$this->tabBilan['FW'] )
/ @$this->tabBilan['FL'];
else $j=0;
/** Rentabilit<EFBFBD> <20>conomique */
/** Rentabilité économique */
$k=$this->calculRentabiliteEco();
/** Capacit<EFBFBD> de remboursement */
/** Capacité de remboursement */
$denom= @$this->tabBilan['GW']-@$this->tabBilan['FP']+@$this->tabBilan['GA']+@$this->tabBilan['GB']+@$this->tabBilan['GC']
+ @$this->tabBilan['GD']-@$this->tabBilan['GM']+@$this->tabBilan['GQ']+@$this->tabBilan['HA']-@$this->tabBilan['HE']
- @$this->tabBilan['HJ']-@$this->tabBilan['HK'];
@ -2131,8 +2143,8 @@ class ICotation {
}
function scoreAltman($enBourse=true) {
$iBourse=new MBourse(@$this->tabBilan['SIREN']);
$bourse=$iBourse->getInfosBourse(@$this->tabBilan['SIREN']);
$iBourse = new MBourse(@$this->tabBilan['SIREN'], $this->iDb);
$bourse = $iBourse->getInfosBourse(@$this->tabBilan['SIREN']);
if (count($bourse)>0) $this->societeEnBourse=true;
if ($enBourse && $this->societeEnBourse) {

View File

@ -0,0 +1,120 @@
<?php
require_once 'Metier/scores/classMRegression.php';
class Projection
{
/**
* Tableau des années de millesime de bilans
*/
public $tabRegX;
/**
* Tableau des années en paramètres
*/
protected $Y;
/**
* + $nbAnnees Projetées
*/
protected $Yaff;
/**
* Taux de projection de n à n+$nbAnnees
*/
protected $PROJECTAUX;
/**
* Coef de corélation linéaire
*/
protected $PROJECCOEF;
public function getY()
{
return $this->Y;
}
public function getYaff()
{
return $this->Yaff;
}
public function getProjecTaux()
{
return $this->PROJECTAUX;
}
public function getProjecCoeff()
{
return $this->PROJECCOEF;
}
/**
* Remplace la function PROJECCOEF
* @param array $tabRegY
* @param array $nbAnnees
* @return boolean|number
*/
public function calcCOEF($tabRegY, $nbAnnees)
{
if ( count($this->tabRegX) == 0 || count($tabRegY) == 0 ) {
return false;
}
$oReg = new Regression($tabRegY, $this->tabRegX);
return $oReg->vCoefCorLin;
}
/**
* Remplace la function PROJEC
* @param array $tabRegY
* @param array $nbAnnees
* @return boolean|mixed
*/
public function calc($tabRegY, $nbAnnees)
{
if ( count($this->tabRegX) == 0 || count($tabRegY) == 0 ) {
return false;
}
$oReg = new Regression($tabRegY, $this->tabRegX);
$tab = $oReg->GetProjectionDebut($nbAnnees);
$this->Y = $this->Yaff = array();
$nbRegX = count($this->tabRegX);
// Début des clés pour le tableau Y des critères
$j = 0 - $nbRegX;
foreach($tab as $i=>$valeur) {
$j++;
if ( isset($this->tabRegX[$i]) ) {
$this->Yaff[''.$this->tabRegX[$i].' '] = $this->Y[$j] = $tab[$i];
$lastX = $this->tabRegX[$i];
} else {
$lastX++;
$this->Yaff[''.$lastX.' '] = $this->Y[$j] = $tab[$i];
}
}
$this->PROJECTAUX = $oReg->TauxProgression($nbAnnees);
$this->PROJECCOEF = $oReg->vCoefCorLin*100;
return end($tab);
}
/**
* Remplace la function PROJECTAUX
* @param array $tabRegY
* @param array $nbAnnees
* @return boolean|number
*/
public function calcTAUX($tabRegY, $nbAnnees)
{
if ( count($this->tabRegX) == 0 || count($tabRegY) == 0 ) {
return false;
}
$oReg = new Regression($tabRegY, $this->tabRegX);
return $oReg->TauxProgression($nbAnnees);
}
}

View File

@ -1,70 +1,72 @@
<?php
class Regression{
/*
But: Fournir un objet assez complet permettant d'opérer facilement une régression
linéaire, plus connu sur le nom de courbe de tendance sous Excel.
Usage: 0- Dans votre fichier PHP insérer include ("CrbTendance.php");
1- Déclarer l'objet RegLin
ex: $oReg= new RegLin($tDonnees) ou $oReg= new RegLin($tY, $tX)
Les deux syntaxe sont disponible, si une seul tableau est fourni
alors le second est initialisé du même nombre d'occurence commençant à 0
avec un pas de 1
2- Lancer le calcul, avec méthodes fournie de 0 à 4, par défaut 0 sera pris. Pour
tout élément supérieur à 4, la cinquième sera prise.
Cette méthode retourne un tableau à Trois positions,
-avec dans la case "A" le coef directeur de la droite,
-dans la case "B" le positionnement vertical
-dans la case "Cor" le coef de corrélation
-et dans la case "Meth" le numéro de la méthode utlisée
<?php
class Regression
{
/*
But: Fournir un objet assez complet permettant d'opérer facilement une régression
linéaire, plus connu sur le nom de courbe de tendance sous Excel.
Usage: 0- Dans votre fichier PHP insérer include ("CrbTendance.php");
1- Déclarer l'objet RegLin
ex: $oReg= new RegLin($tDonnees) ou $oReg= new RegLin($tY, $tX)
Les deux syntaxe sont disponible, si une seul tableau est fourni
alors le second est initialisé du même nombre d'occurence commençant à 0
avec un pas de 1
2- Lancer le calcul, avec méthodes fournie de 0 à 4, par défaut 0 sera pris. Pour
tout élément supérieur à 4, la cinquième sera prise.
Cette méthode retourne un tableau à Trois positions,
-avec dans la case "A" le coef directeur de la droite,
-dans la case "B" le positionnement vertical
-dans la case "Cor" le coef de corrélation
-et dans la case "Meth" le numéro de la méthode utlisée
Ex: print_r($oReg0->OptMV(0));
==>Array ( [A] => -649.029426204
[B] => 3037796.68186
[Cor] => -0.143065138366
[Meth] => 0 )
3- De manière optionnel vous pouvez lancer la méthode GetOpt();,
qui vous fournira le point de votre droite en fonction de votre
tableau d'abscisses, si ce dernier n'est pas fourni
vous aurez un tableau de 0 à nb-1 d'occurence du premier tableau
Ex: print_r($oReg0->OptMV(0));
==>Array ( [A] => -649.029426204
[B] => 3037796.68186
[Cor] => -0.143065138366
[Meth] => 0 )
3- De manière optionnel vous pouvez lancer la méthode GetOpt();,
qui vous fournira le point de votre droite en fonction de votre
tableau d'abscisses, si ce dernier n'est pas fourni
vous aurez un tableau de 0 à nb-1 d'occurence du premier tableau
Ex: print_r($oReg1->GetOpt());
==>Array ( [1] => 3037147.65243
[7] => 3033253.47587
[20] => 3024816.09333
[21] => 3024167.06391
[22] => 3023518.03448)
Ex: print_r($oReg1->GetOpt());
==>Array ( [1] => 3037147.65243
[7] => 3033253.47587
[20] => 3024816.09333
[21] => 3024167.06391
[22] => 3023518.03448)
*/
*/
//champ de l'objet
private $tDonnees;
private $tAbscisse;
private $vNbElt; //Nombre déléments des tableaux
//champ de l'objet
private $tDonnees;
private $tAbscisse;
private $vNbElt; //Nombre déléments des tableaux
private $vMoyX; //Moyenne des X
private $vMoyY; //Moyenne des Y
private $vSumXY;
private $vSumX;
private $vSumY;
private $vSumX2;
private $tPtG; //Le point moyen G est un tableau tPtG(X,Y)=(vMoyX,vMoyY)
//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne
Private $vVarianceX;
Private $vVarianceY;
//L'écart Type, c'est la racine carrée de la variance
Private $vEcartTX;
Private $vEcartTY;
//La covariance, la moyenne des produits moins le produit des moyennes
Private $vCovariance;
private $vMoyX; //Moyenne des X
private $vMoyY; //Moyenne des Y
private $vSumXY;
private $vSumX;
private $vSumY;
private $vSumX2;
private $tPtG; //Le point moyen G est un tableau tPtG(X,Y)=(vMoyX,vMoyY)
//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne
private $vVarianceX;
private $vVarianceY;
//L'écart Type, c'est la racine carrée de la variance
private $vEcartTX;
private $vEcartTY;
//La covariance, la moyenne des produits moins le produit des moyennes
private $vCovariance;
Private $vA; //Coef directeur de la droite liée à la régression
Private $vB; //Coef B de la droite liée à la régression
public $vCoefCorLin;//Coef de corrélation linéaire
private $vA; //Coef directeur de la droite liée à la régression
private $vB; //Coef B de la droite liée à la régression
public $vCoefCorLin;//Coef de corrélation linéaire
public $tTest;
public function __construct($tDataY,$tDataX=NULL) {
public function __construct($tDataY,$tDataX=NULL)
{
$this->tDonnees = $tDataY;
$this->tAbscisse = $tDataX;
$this->vNbElt = $n=count($this->tDonnees); // Nombres d'éléments
@ -83,7 +85,7 @@ class Regression{
for ($i=0;$i<$n;$i++) {
$xVal=$this->tAbscisse[$i];
$yVal=$this->tDonnees[$i];
$yVal=$this->tDonnees[$i];
$sumX+=$xVal;
$sumY+=$yVal;
$sumX2+=$xVal*$xVal;
@ -91,67 +93,68 @@ class Regression{
$sumXY+=$xVal*$yVal;
}
$this->vMoyX=$sumX/$n; //moyenne X
$this->vMoyY=$sumY/$n; //moyenne Y
$this->vMoyX=$sumX/$n; //moyenne X
$this->vMoyY=$sumY/$n; //moyenne Y
$this->vSumXY=$sumXY;
$this->vSumX=$sumX;
$this->vSumY=$sumY;
$this->vSumX2=$sumX2;
$this->vSumXY=$sumXY;
$this->vSumX=$sumX;
$this->vSumY=$sumY;
$this->vSumX2=$sumX2;
$this->tPtG=array('X'=>$this->vMoyX,'Y'=>$this->vMoyY); //point moyen G
$this->tPtG=array('X'=>$this->vMoyX,'Y'=>$this->vMoyY); //point moyen G
//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne: Rappel
$this->vVarianceX=($sumX2/$n)-($this->vMoyX*$this->vMoyX);
$this->vVarianceY=($sumY2/$n)-($this->vMoyY*$this->vMoyY);
//La variance, c'est la moyenne des carrés soustrait du carré de la moyenne: Rappel
$this->vVarianceX=($sumX2/$n)-($this->vMoyX*$this->vMoyX);
$this->vVarianceY=($sumY2/$n)-($this->vMoyY*$this->vMoyY);
//L'écart Type, c'est la racine carrée de la variance: Rappel
$this->vEcartTX=sqrt(abs($this->vVarianceX));
$this->vEcartTY=sqrt(abs($this->vVarianceY));
//L'écart Type, c'est la racine carrée de la variance: Rappel
$this->vEcartTX=sqrt(abs($this->vVarianceX));
$this->vEcartTY=sqrt(abs($this->vVarianceY));
//La covariance, la moyenne des produits moins le produit des moyennes
$this->vCovariance=($sumXY/$n)-($this->vMoyX*$this->vMoyY);
//La covariance, la moyenne des produits moins le produit des moyennes
$this->vCovariance=($sumXY/$n)-($this->vMoyX*$this->vMoyY);
// coef de coorélation linéaire: Covariance que divise l'écart Type X multiplié par l'écart Type de Y
// coef de coorélation linéaire: Covariance que divise l'écart Type X multiplié par l'écart Type de Y
$this->vCoefCorLin=$this->vCovariance/($this->vEcartTX*$this->vEcartTY);
// Calcul de la droite
$this->CoefsDroite(0);
$this->tTest=array(
'vMoyX'=>$this->vMoyX,
$this->tTest=array(
'vMoyX'=>$this->vMoyX,
'vMoyY'=>$this->vMoyY,
'vA'=>$this->vA, // Coef directeur de la droite liée à la régression
'vB'=>$this->vB, // Coef B de la droite liée à la régression
'tPtG'=>$this->tPtG,
'vVarianceX'=>$this->vVarianceX,
'vVarianceY'=>$this->vVarianceY,
'vEcartTX'=>$this->vEcartTX,
'vEcartTY'=>$this->vEcartTY,
'vA'=>$this->vA, // Coef directeur de la droite liée à la régression
'vB'=>$this->vB, // Coef B de la droite liée à la régression
'tPtG'=>$this->tPtG,
'vVarianceX'=>$this->vVarianceX,
'vVarianceY'=>$this->vVarianceY,
'vEcartTX'=>$this->vEcartTX,
'vEcartTY'=>$this->vEcartTY,
'vCovariance'=>$this->vCovariance,
'vCoefCorLin'=>$this->vCoefCorLin,
);
);
}
/** Calcul de la droite
** (calcul de coef directeur de la régression par théorie de la régression linéaire
** le coef a est obtenu des manières suivantes avec 5 variantes disponibles)
**/
Private function CoefsDroite($met=0)
{
switch ($met) {
case 0:
$this->vA=$this->vCovariance/$this->vVarianceX;
break;
case 1:
$this->vA=$this->vVarianceY/$this->vCovariance;
break;
case 2:
$this->vA=($this->vCovariance*$this->vEcartTY)/(abs($this->vCovariance)*$this->vEcartTX);
break;
/**
* Calcul de la droite
* (calcul de coef directeur de la régression par théorie de la régression linéaire
* le coef a est obtenu des manières suivantes avec 5 variantes disponibles)
*/
private function CoefsDroite($met=0)
{
switch ($met) {
case 0:
$this->vA=$this->vCovariance/$this->vVarianceX;
break;
case 1:
$this->vA=$this->vVarianceY/$this->vCovariance;
break;
case 2:
$this->vA=($this->vCovariance*$this->vEcartTY)/(abs($this->vCovariance)*$this->vEcartTX);
break;
/*
case 4:
$this->vA=($this->vSumXY-(($this->vSumX*$this->vSumY)/$this->vNbElt)/($this->vSumX2-(pow(2,$this->vSumX)/$this->vNbElt)));
case 4:
$this->vA=($this->vSumXY-(($this->vSumX*$this->vSumY)/$this->vNbElt)/($this->vSumX2-(pow(2,$this->vSumX)/$this->vNbElt)));
break; */
case 3:
$this->vA=($this->vVarianceY-$this->vVarianceX+sqrt(pow($this->vVarianceY-$this->vVarianceX,2)+pow(2*$this->vCovariance,2)))/(2*$this->vCovariance);
@ -160,129 +163,57 @@ class Regression{
$this->vA=($this->vSumXY-($this->vSumX*$this->vSumY/$this->vNbElt))/($this->vSumX2-(pow($this->vSumX,2)/$this->vNbElt));
break;
}
$this->vB=$this->vMoyY-($this->vA*$this->vMoyX);
}
/** Calcul la régression Linéaire **/
function OptMV($meth=0){
$this->CoefsDroite($meth);
$this->CoefCorLin();
return array("A"=>$this->vA,"B"=>$this->vB,"Cor"=>$this->vCoefCorLin,"Meth"=>$meth,"TauxProg"=>(1-$this->vA)*100);
$this->vB=$this->vMoyY-($this->vA*$this->vMoyX);
}
/** Renvoi le tableau des points optimisés
**/
function GetOpt() {
/**
* Calcul la régression Linéaire
*/
public function OptMV($meth=0)
{
$this->CoefsDroite($meth);
$this->CoefCorLin();
return array("A"=>$this->vA,"B"=>$this->vB,"Cor"=>$this->vCoefCorLin,"Meth"=>$meth,"TauxProg"=>(1-$this->vA)*100);
}
/**
* Renvoi le tableau des points optimisés
*/
public function GetOpt()
{
$tOpt=array();
foreach($this->tAbscisse as $i)
$tOpt[$i]=$this->vA*$i+$this->vB;
return $tOpt;
return $tOpt;
}
function GetProjection($nbPeriodes) {
public function GetProjection($nbPeriodes)
{
$iMax=end($this->tAbscisse)+$nbPeriodes+1;
$tOpt=array();
for ($i=end($this->tAbscisse); $i<$iMax; $i++)
$tOpt[$i]=$this->vA*$i+$this->vB;
return $tOpt;
return $tOpt;
}
function GetProjectionDebut($nbPeriodes) {
public function GetProjectionDebut($nbPeriodes)
{
$iMax=end($this->tAbscisse)+$nbPeriodes+1;
$tOpt=array();
reset($this->tAbscisse);
for ($i=current($this->tAbscisse); $i<$iMax; $i++)
$tOpt[$i]=$this->vA*$i+$this->vB;
return $tOpt;
return $tOpt;
}
function TauxProgression($nbPeriodes) {
public function TauxProgression($nbPeriodes)
{
$tOpt=$this->GetProjection($nbPeriodes);
reset($tOpt);
print_r($tOpt);
//print_r($tOpt);
$deb=abs(current($tOpt));
$fin=abs(end($tOpt));
// echo 'Deb='.$deb.EOL;
// echo 'Fin='.$fin.EOL;
return (($fin-$deb)*100)/$deb;
return (($fin-$deb)*100)/$deb;
}
}
function PROJECCOEF($tabRegY,$nbAnnees) {
global $tabRegX;
if (count($tabRegX)==0 || count($tabRegY)==0) return false;
$oReg= new Regression($tabRegY,$tabRegX);
// echo 'fonction PROJECCOEF'.EOL;
// print_r($oReg->tTest);
return $oReg->vCoefCorLin;
}
function PROJEC($tabRegY,$nbAnnees) {
global $tabRegX; // Tableau des années de millesime de bilans
global $Y, $Yaff; // Tableau des années en paramètres + $nbAnnees Projetées
global $PROJECTAUX; // Taux de projection de n à n+$nbAnnees
global $PROJECCOEF; // Coef de corélation linéaire
global $SIREN;
/*
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $SIREN : Regression Début", ''.
'$tabRegX='.print_r($tabRegX,true).
'$tabRegY='.print_r($tabRegY,true).
'$nbAnnees='.$nbAnnees."\r\n".
'$Y='.print_r($Y,true)."\r\n".
'$Yaff='.print_r($Yaff,true)."\r\n".
'$PROJECTAUX='.$PROJECTAUX."\r\n".
'$PROJECCOEF='.$PROJECCOEF."\r\n"
);
*/
if (count($tabRegX)==0 || count($tabRegY)==0) return false;
$oReg= new Regression($tabRegY,$tabRegX);
$tab=$oReg->GetProjectionDebut($nbAnnees);
$Y=$Yaff=array();
$nbRegX=count($tabRegX);
// Début des clés pour le tableau Y des critères
$j=0-$nbRegX;
foreach($tab as $i=>$valeur) {
$j++;
if (isset($tabRegX[$i])) {
$Yaff[''.$tabRegX[$i].' ']=$Y[$j]=$tab[$i];
$lastX=$tabRegX[$i];
} else {
$lastX++;
$Yaff[''.$lastX.' ']=$Y[$j]=$tab[$i];
}
}
/*print_r($Yaff);
print_r($Y);
*/
$PROJECTAUX=$oReg->TauxProgression($nbAnnees);
$PROJECCOEF=$oReg->vCoefCorLin*100;
/*
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $SIREN : Regression Fin",
'$nbAnnees='.$nbAnnees." ($tabRegY)".EOL.
'$tabRegX='.print_r($tabRegX,true).EOL.
'$tabRegY='.print_r($tabRegY,true).EOL.
'Régression $tab='.print_r($tab,true).EOL.
EOL.
'$Yaff='.print_r($Yaff,true).EOL.
'$Y='.print_r($Y,true).EOL.
'$PROJECTAUX='.$PROJECTAUX.EOL.
'$PROJECCOEF='.$PROJECCOEF.EOL);
*/
return end($tab);
}
function PROJECTAUX($tabRegY,$nbAnnees) {
global $tabRegX;
if (count($tabRegX)==0 || count($tabRegY)==0) return false;
$oReg= new Regression($tabRegY,$tabRegX);
return $oReg->TauxProgression($nbAnnees);
}
?>

View File

@ -484,8 +484,8 @@ function format($matches)
global $Rs, $Rsp, $Rsp2, $Rsp3, $Rsp4;
global $Revol, $Revolp, $Revolp2, $Revolp3;
global $Ra, $Rap, $Rdiff;
global $regR, $regRs;
global $tabFormulesRatios;
global $regR, $regRs, $Y, $Yaff, $PROJEC, $PROJECTAUX, $PROJECCOEFF;
global $tabFormulesRatios, $tabRegX;
$strRetour='$'.$matches[1];
$strUnite='';
@ -506,11 +506,25 @@ function format($matches)
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Trace Graph", $strRetour);
return $matches[1];
} elseif (preg_match("/PROJEC\((R.*),(.*)\)/Ui", $strRetour, $matches2)) {
if (preg_match('/Rs/', $matches2[2])) $valeur=$regRs6;
else $valeur=$regR6;
switch(strtoupper($matches2[1])) {
if (preg_match('/Rs/', $matches2[2])) {
$valeur = $regRs[6];
} else {
$valeur = $regR[6];
}
switch(strtoupper($matches2[1]))
{
//case 'PROJECCOEF': return formatRatio('', PROJECCOEF($valeur, $matches2[2]), strtoupper($tabFormulesRatios[6]['unite'])); break;
case 'PROJEC': return formatRatio('', PROJEC($valeur, $matches2[2]), strtoupper($tabFormulesRatios[6]['unite'])); break;
case 'PROJEC':
require_once 'Metier/Scores/classMProjection.php';
$projec = new Projection();
$projec->tabRegX = $tabRegX;
$result = $projec->calc($valeur, $matches2[2]);
$Y = $projec->getY();
$Yaff = $projec->getYaff();
$PROJECTAUX = $projec->getProjecTaux();
$PROECCOEFF = $projec->getProjecCoeff();
return formatRatio('', $result, strtoupper($tabFormulesRatios[6]['unite']));
break;
//case 'PROJECTAUX': return formatRatio('', PROJECTAUX($valeur, $matches2[2]), strtoupper($tabFormulesRatios[6]['unite'])); break;
}
} elseif (preg_match('/\$\{(\+|!|)(Rp4|Rp3|Rp2|Rp|Rs|Rsp|Rap|Ra|Rdiff|Revolp2|Revolp|Revol|R|regR)\[(\d+)\]\}/Ui', $strRetour, $matches2)) {
@ -567,6 +581,21 @@ function format($matches)
return $strRetour.' '.$strUnite;
}
function PROJEC($valeur, $nbAnnees)
{
global $tabRegX, $Y, $Yaff, $PROECCOEFF, $PROJECTAUX;
require_once 'Metier/scores/classMProjection.php';
$projec = new Projection();
$projec->tabRegX = $tabRegX;
$result = $projec->calc($valeur, $nbAnnees);
if ( $result !== false ) {
$Y = $projec->getY();
$Yaff = $projec->getYaff();
$PROJECTAUX = $projec->getProjecTaux();
$PROECCOEFF = $projec->getProjecCoeff();
}
}
/**
* Compute the indiScore
* @param string $siren
@ -577,7 +606,7 @@ function format($matches)
* @param string $type
* "scores" ou "valo"
*/
function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mailDebug=true, $type = 'scores', $sourceModif='jour')
function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mailDebug=true, $type = 'scores', $sourceModif='jour', $db = null)
{
$timer = array('debutIndiscore'=>microtime(true));
if (strlen($siren)>9 || (substr(''.$siren,0,9)*1)<100 ) {
@ -610,7 +639,11 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$NIVEAU=$cycleClient; // 1, 2, 3 ou 5 Niveau de version des commentaires
$iDb = new WDB();
if ( $db === null ) {
$iDb = new WDB();
} else {
$iDb = $db;
}
$iRncs = new MRncs($iDb);
$iInsee = new MInsee($iDb);
$iInsee->AnnoncesInMemory = true;
@ -1060,11 +1093,11 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
global $PROJECTAUX; // Taux de projection de n à n+$nbAnnees
global $PROJECCOEF;
$tabRegX=array();
foreach ($tabBilans as $tabTmp){
$tabRegX[]=$tabTmp['millesime'];
$tabRegX = array();
foreach ($tabBilans as $k => $tabTmp){
$tabRegX[] = $tabTmp['millesime'];
}
$iMax=count($tabRegX);
$iMax = count($tabRegX);
$EFFECTIF=$R[24];
if ($EFFECTIF*1==0 && $efftr>0) $EFFECTIF=$efftr;
@ -1167,26 +1200,30 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
// Régression : Ratios
foreach ($tabFormules as $i2=>$Rtmp) {
for ($i=0;$i<=$iMax;$i++) {
if (isset($tabRatios[$i][$Rtmp['id']])) {
foreach ($tabFormules as $i2 => $Rtmp)
{
for ( $i = 0 ; $i <= $iMax ; $i++ ) {
if ( isset($tabRatios[$i][$Rtmp['id']]) ) {
$regR[$Rtmp['id']][]=$tabRatios[$i][$Rtmp['id']];
} else {
unset($tabRegX[$i]);
if ( array_key_exists($i, $tabRegX) ) {
//unset($tabRegX[$i]);
}
}
if (isset($tabRatiosSecteurs[$i][$Rtmp['id']]))
if (isset($tabRatiosSecteurs[$i][$Rtmp['id']])) {
$regRs[$Rtmp['id']][]=$tabRatiosSecteurs[$i][$Rtmp['id']];
}
}
if ( is_array($regR) && array_key_exists($Rtmp['id'], $regR) ) {
$regR[$Rtmp['id']]=array_reverse($regR[$Rtmp['id']]);
$regR[$Rtmp['id']] = array_reverse($regR[$Rtmp['id']]);
}
if ( is_array($regRs) && array_key_exists($Rtmp['id'], $regRs) ) {
$regRs[$Rtmp['id']]=array_reverse($regRs[$Rtmp['id']]);
$regRs[$Rtmp['id']] = array_reverse($regRs[$Rtmp['id']]);
}
}
// On renverse les tableaux 2008, 2007, 2006... en 2006, 2007, 2008
$tabRegX=array_reverse($tabRegX);
$tabRegX = array_reverse($tabRegX);
$timer['regression']=microtime(true);
@ -1862,9 +1899,21 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
/**
* Solvabilité
*/
$isolv = new MSolvabilite($siren, $naf, $tabIdentite['EffEnTr'], $tabIdentite['Effectif']*1, $tabIdentite['CP'],
$fj, $tabIdentite['Capital'], $tabIdentite['CapitalDev'], $tabIdentite['DateCreaEn'],
$tabIdentite['DateCreaEt'], '', $RECME);//, $tabIdentite['Singularite']);
$isolv = new MSolvabilite(
$siren,
$naf,
$tabIdentite['EffEnTr'],
$tabIdentite['Effectif']*1,
$tabIdentite['CP'],
$fj,
$tabIdentite['Capital'],
$tabIdentite['CapitalDev'],
$tabIdentite['DateCreaEn'],
$tabIdentite['DateCreaEt'],
'',
$RECME,
$iDb
);
$noteStructure=$isolv->getSolvabilite();
$timer['solv']=microtime(true);
@ -1927,7 +1976,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
if (count($tabA)>0) {
foreach ($tabA as $i=>$lien)
{
$lienInsee = new MInsee();
$lienInsee = new MInsee($iDb);
if(intval($lien->siren)>100 && ( $lien->MajMin=='+' || $lien->PDetention>50))
{
$tabIdentiteA=$lienInsee->getIdentiteLight($lien->siren);
@ -1966,7 +2015,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
if (count($tabP)>0) {
foreach ($tabP as $i=>$lien) {
if ($lien->siren>100 && ( $lien->MajMin=='+' || $lien->PDetention>50)) {
$lienInsee = new MInsee();
$lienInsee = new MInsee($iDb);
$NBFILLE++; // Nombre de participations à plus de 50%
if ($NBFILLE==1) {
$tabIdentiteP=$lienInsee->getIdentiteLight($lien->siren);
@ -2023,7 +2072,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
if ($numBil>2) break;
$icotation = new ICotation($item, true);
$icotation = new ICotation($item, true, $iDb);
$secteur=$icotation->getSecteurActivite($isolv->getNaf4($naf));
$libSecteur=$icotation->tabLibActivite[$secteur];
$chiffeAffaire=$icotation->calculChiffreAffaires($isolv->getNaf4($naf));
@ -2433,7 +2482,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$COTEOK=$IMPAYE=$PRIVILEGES=$RISQUEGROUPE=$DEFAUT=$LCASSUR=$RISQUEIMPAYE=$CSFACTO=false;
$MODIFPAIDATE=0;
require_once 'Metier/partenaires/classMFacto.php';
$iFacto = new MFacto();
$iFacto = new MFacto($iDb);
$infoFacto = $iFacto->getCoteSpeciale($siren);
$timer['factoCS']=microtime(true);
@ -3090,7 +3139,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
/** INFOS Orias **/
require_once 'Metier/partenaires/classMOrias.php';
$iOrias = new MOrias(false);
$iOrias = new MOrias(false, $iDb);
$tabTmp = $iOrias->getInfosOrias($SIREN);
$ORIASID=$ORIASCAT=$ORIASID_DATE='';
if (count($tabTmp)>0) {
@ -3114,8 +3163,8 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$MARQUENB_FR=0; // Nombre de marques déposées en FRANCE
$tabMarques['WW']=$tabMarques['EU']=$tabMarques['FR']=array();
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Marques", print_r($ret,true));
$iMarque=new MMarques();
$ret=$iMarque->getMarques($siren);
$iMarque = new MMarques($iDb);
$ret = $iMarque->getMarques($siren);
if ($ret!==false && count($ret)>0) {
foreach ($ret as $i=>$marque) {
switch ($marque['rayonMarque']) {
@ -3291,7 +3340,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
*/
// Locaux
require_once 'Metier/partenaires/classMCadastre.php';
$iCadastre=new MCadastre();
$iCadastre=new MCadastre($iDb);
$tabTmp=$iCadastre->getLocaux($siren);
if(count($tabTmp)>0 ) {
foreach ($tabTmp as $iTmp=>$cad) {
@ -3577,28 +3626,41 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
if(INDISCORE_DEBUG) {
$variables="\n\$NIVEAU=$NIVEAU\n\$numBil=$numBil\n\$noteSD=$noteSD\n\t-----";
$variables="\n\$NIVEAU=$NIVEAU\n\$numBil=$numBil\n\$noteSD=$noteSD\n\t-----\n";
foreach ($tabVar as $var){
if (isset(${$var})) $variables.="$var='${$var}'".EOL;
else $variables.="$var='${$var}' NON DEFINIE !!!".EOL;
}
foreach ($tabVar as $var)
{
if (isset(${$var})) {
if (is_array(${$var})) {
$variables.="$var=".print_r(${$var}).EOL;
} else {
$variables.="$var='${$var}'".EOL;
}
}
else {
$variables.="$var='${$var}' NON DEFINIE !!!".EOL;
}
}
file_put_contents($SIREN.'_'.$type.'.log',
"Indiscore sur $siren : Commentaires".EOL.
"Liste des variables :\n$variables".EOL.
"Liste des variables :\n$variables".EOL.
'CA_COEF='.$CA_COEF.EOL.
'CA_Y='.print_r($CA_Y,true).EOL.EOL.
'RCAI_COEF='.$RCAI_COEF.EOL.
'RCAI_Y='.print_r($RCAI_Y,true).EOL.
"PROJECTAUX=$PROJECTAUX".EOL.
"Yaff=".print_r($Yaff,true).EOL.
"tabRegX=".print_r($tabRegX,true).EOL.
print_r($tabComment, true).EOL.
"Liste des variables :\n".print_r($tabVariables, true).EOL.
"Liste des commentaires a trier :\n".print_r($tabCommentairesATrier,true).EOL.
"Tableau des codes de tri pour calcul :\n".print_r($tabTri,true).EOL.
"Tableau des codes de tri pour affichage :\n".print_r($tabTriAff,true).EOL.
$debugFormule.EOL.'-----------------------'.EOL.
"Liste des Bilans :\n".print_r($tabBilans, true).EOL.
//"Détail des postes Bilans :\n".print_r($tabBilan, true).EOL.
//
//"Liste des Formules Ratios :\n".print_r($tabFormulesRatios, true).EOL.
//"Debug variables :\n".file_get_contents('/var/www/log/debugFmt.log').EOL.
"\$tabBil=\n".print_r($tabBil,true).EOL
"tabBil=".print_r($tabBil,true).EOL.
"Liste des Ratios :\n".print_r($tabRatios, true).EOL.
"Liste des ratios Evolutions :\n". print_r($tabRatiosEvol, true).EOL
);
$i=0; $strTime='';
@ -3613,44 +3675,9 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
$duree=round($time-$timeDeb,3);
$strTime.="---------------------\nTOTAL : $duree secondes\n";
file_put_contents('time.log', "Indiscore sur $siren : Durées ".ENV, $strTime.EOL.$strNote.EOL.$variables.EOL.print_r($tabRatiosInfos,true));
file_put_contents('time.log', "Indiscore sur $siren : Durées ".$strTime.EOL.$strNote.EOL.$variables.EOL.print_r($tabRatiosInfos,true));
//sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com', "Indiscore sur $siren : Durées ".ENV, $strTime.EOL.$strNote.EOL.$variables.EOL.print_r($tabRatiosInfos,true));
}
/*
if(ENV<>'PRD' && $mailDebug)
sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com,jm.champeau@recocash.com', "Indiscore sur $siren : Variables",
'CA_COEF='.$CA_COEF.EOL.
'CA_Y='.print_r($CA_Y,true).EOL.
EOL.
'RCAI_COEF='.$RCAI_COEF.EOL.
'RCAI_Y='.print_r($RCAI_Y,true).EOL.
"rcai TAUX=$PROJECTAUX".EOL.
"y aff=".print_r($Yaff,true).EOL.
"x=".print_r($tabRegX,true).EOL.
EOL.
print_r($tabComment, true).EOL.EOL.
$variables.EOL."Liste des Ratios :\n".print_r($tabRatios, true).EOL.
"Liste des ratios Evolutions :\n". print_r($tabRatiosEvol, true).EOL.
"Liste des commentaires Debug :\n".print_r($tabCommentairesTmp, true));
*/
/*sendMail('production@scores-decisions.com', 'mricois@scores-decisions.com',
"Indiscore sur $siren : Commentaires",
"Liste des variables :\n$variables".EOL.
print_r($tabComment, true).EOL.
"Liste des variables :\n".print_r($tabVariables, true).EOL.
"Liste des commentaires Debug :\n".print_r($tabCommentairesTmp, true).EOL.
"Liste des commentaires a trier :\n".print_r($tabCommentairesATrier,true).EOL.
"Tableau des codes de tri pour calcul :\n".print_r($tabTri,true).EOL.
"Tableau des codes de tri pour affichage :\n".print_r($tabTriAff,true).EOL.
$debugFormule.EOL.'-----------------------'.EOL.
"Liste des Bilans :\n".print_r($tabBilans, true).EOL.
//"Détail des postes Bilans :\n".print_r($tabBilan, true).EOL.
//
//"Liste des Formules Ratios :\n".print_r($tabFormulesRatios, true).EOL.
//"Debug variables :\n".file_get_contents('/var/www/log/debugFmt.log').EOL.
"\$tabBil=\n".print_r($tabBil,true).EOL
);*/
// EntActiveRCS
if ($ACTIFRNCS || $ACTIFINSEE) {

View File

@ -3,6 +3,7 @@ require_once 'Metier/scores/classMFinancier.php';
class MSolvabilite
{
protected $iDb;
private $naf;
private $trEff;
private $dep;
@ -1040,8 +1041,14 @@ class MSolvabilite
* @param number $recme
* @return boolean
*/
public function __construct($siren, $naf='', $trancheEff='', $effectifReel='', $depSiege_CodePosSiege='', $fj='', $capital='', $capitalDev='', $dateCreaEn='', $dateCreaSiege='', $singularite='', $recme=0)
public function __construct($siren, $naf='', $trancheEff='', $effectifReel='', $depSiege_CodePosSiege='', $fj='', $capital='', $capitalDev='', $dateCreaEn='', $dateCreaSiege='', $singularite='', $recme=0, $db = null)
{
if ( $db === null ) {
$this->iDb = new WDB();
} else {
$this->iDb = $db;
}
$this->naf=$naf;
$this->trEff=$trancheEff;
if($this->trEff=='NN' || $this->trEff=='00' || ($this->trEff*1)==0) {
@ -1099,7 +1106,7 @@ class MSolvabilite
else
$nbPoints=5;
elseif (strlen($this->naf)==5) {
$iCotation = new ICotation(array());
$iCotation = new ICotation(array(), true, $this->iDb);
//print_r($iCotation->tabNaf21);
//die();
if (isset($iCotation->tabNaf21[$this->naf])) {
@ -1129,7 +1136,7 @@ class MSolvabilite
$naf5=$this->naf;
if (strlen($naf5)==5) {
$iCotation = new ICotation(array());
$iCotation = new ICotation(array(), true, $this->iDb);
return $iCotation->tabNaf21[$naf5];
}
return $naf5;

View File

@ -9,7 +9,7 @@ $tabVar = array(
'AGE',
'ANNEEp3',
'ANNEEp2',
'ANNEEp1',
'ANNEEp',
'ANNEE',
'ANNEE1',
'ANNEE2',

View File

@ -304,9 +304,9 @@ function premiereRequeteSphinx(&$sphinx, &$index, &$formR, &$criteres,
foreach ($formR as $label => $valeur) {
if ($label == 'naf' && empty($valeur) == false) {
$requete_sphinx .= '@ape_etab '.$valeur.' ';
} else if (empty($valeur) == false &&
isset($criteresSphinx[$label]) == true &&
strstr($criteres, $form2crit[$label]) != false) {
} else if (empty($valeur) == false
&& isset($criteresSphinx[$label]) == true
&& strstr($criteres, $form2crit[$label]) != false) {
if ($label == 'raisonSociale') {
$sans_espace = str_replace(' ', '', $valeur);
if ($sans_espace != $valeur) {
@ -360,9 +360,9 @@ function requeteSphinx(&$sphinx, &$index, &$formR, &$criteres,
foreach ($formR as $label => $valeur) {
if ($label == 'naf' && empty($valeur) == false) {
$requete_sphinx .= '@ape_etab '.$valeur.' ';
} else if (empty($valeur) == false &&
isset($criteresSphinx[$label]) == true &&
strstr($criteres, $form2crit[$label]) != false) {
} else if (empty($valeur) == false
&& isset($criteresSphinx[$label]) == true
&& strstr($criteres, $form2crit[$label]) != false) {
$requete_sphinx .= $criteresSphinx[$label].' '.$valeur.' ';
}
}
@ -722,16 +722,18 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit,
//$pertinence_generale = 100 - 5 * $resSphinx['pass'];;
$tot = 0;
$num = 0;
$poids = array('I' => 10,
'T' => 1,
'S' => 9,
'E' => 8,
'P' => 7,
'D' => 6,
'L' => 4,
'V' => 5,
'N' => 2,
'R' => 3);
$poids = array(
'I' => 10,
'T' => 1,
'S' => 9,
'E' => 8,
'P' => 7,
'D' => 6,
'L' => 4,
'V' => 5,
'N' => 2,
'R' => 3,
);
foreach ($form2crit as $field => $letter) {
if (empty($formR[$field]) == false) {
$tot += $poids[$letter];
@ -782,7 +784,19 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit,
if ( intval($ligne['adr_dep'])==99 && intval($ligne['adr_num'])==0) {
$adresse.= $ligne['adr_typeVoie'].' '.$ligne['adr_libVoie'];
} else {
$adresse = $ligne['adr_num'].' '.$ligne['adr_typeVoie'].' '.$ligne['adr_libVoie'];
if ( !empty($ligne['adr_num']) ) {
$adresse.= $ligne['adr_num'].' ';
}
if ( !empty($ligne['adr_btq']) ) {
$adresse.= $ligne['adr_btq'].' ';
}
if ( !empty($ligne['adr_typeVoie']) ) {
$adresse.= $ligne['adr_typeVoie'].' ';
}
if ( !empty($ligne['adr_libVoie']) ) {
$adresse.= $ligne['adr_libVoie'].' ';
}
$adresse = trim($adresse);
}
$ret['reponses'][$i]['Adresse'] = $adresse;
$ret['reponses'][$i]['Adresse2'] = $ligne['adr_comp'];
@ -964,6 +978,7 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
e.sigle,
e.enseigne,
e.adr_num,
e.adr_btq,
e.adr_typeVoie,
e.adr_libVoie,
e.adr_comp,
@ -1005,16 +1020,16 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
$nom = $ligne['nom'];
if ( $ligne['naissance_nom']!='' ) {
$nom.= " nom d'usage ".$ligne['naissance_nom'];
$nom.= " née ".$ligne['naissance_nom'];
}
$ligneDir[$i] = array(
'id' => $ligne['id'],
'nom' => $nom,
'prenom' => $ligne['prenom'],
'id' => $ligne['id'],
'nom' => $nom,
'prenom' => $ligne['prenom'],
'fonction_lib' => $ligne['fonction_lib'],
'naissance_nom'=> $ligne['naissance_nom'],
'naissance_date'=> $ligne['naissance_date'],
'naissance_lieu'=> $ligne['naissance_lieu']
'naissance_nom' => $ligne['naissance_nom'],
'naissance_date' => $ligne['naissance_date'],
'naissance_lieu' => $ligne['naissance_lieu']
);
}
@ -1627,6 +1642,7 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false)
sigle,
enseigne,
adr_num,
adr_btq,
adr_typeVoie,
adr_libVoie,
adr_comp,

View File

@ -23,7 +23,7 @@ class WDB
}
if ( $host === null ) {
$c = Zend_Registry::get('config');
$c = Zend_Registry::get('config');
$config = new Zend_Config(array(
'adapter' => $c->profil->db->metier->adapter,
'params' => array(
@ -122,7 +122,7 @@ class WDB
$query='UPDATE `'.$table.'` SET ';
while(isset($fields[$i])){
if($i>0) { $query.=', '; }
$query.=' `'.$fields[$i]."`='".checkaddslashes($values[$i])."'";
$query.=' '.$fields[$i]."='".$this->db->quote($values[$i])."'";
$i++;
}
$query = str_replace("'NULL'", 'NULL', $query);
@ -205,11 +205,7 @@ class WDB
} catch(Zend_Db_Exception $e) {
$this->errorCode = $e->getCode();
$this->errorMsg = $e->getMessage();
$fpErr = fopen(LOG_PATH.'/sqlerror.log','a');
fwrite($fpErr, date('YmdHis'). ' - '.$query .EOL);
fwrite($fpErr, date('YmdHis'). ' - '.$e->getCode().' - '. $e->getMessage().PHP_EOL);
file_put_contents(LOG_PATH.'/sqlerror.log', date('YmdHis')." - ".$query."\n".$e->getCode().':'. $e->getMessage());
return false;
}

View File

@ -1,7 +1,6 @@
<?php
class WDB {
class WDB
{
private $host;
private $database;
private $user;
@ -9,8 +8,8 @@ class WDB {
private $con_id; // Connection ID with MySQL
private $result;
public function __construct($database='', $host='', $user='', $password='') {
public function __construct($database='', $host='', $user='', $password='')
{
if ($host=='') $this->host=MYSQL_HOST;
else $this->host=$host;
if ($user=='') $this->user=MYSQL_USER;
@ -45,20 +44,19 @@ class WDB {
** @param array Valeurs insérer
** @return int Dernière valeur de l'auto-incrément, 1 si pas d'auto-incrément et 0 si erreur
**/
public function insert($table, $toAdd, $debug=false, $low_priority=false){
$this->setDB();
public function insert($table, $toAdd, $debug=false, $low_priority=false)
{
$fields = implode(array_keys($toAdd), '`,`');
foreach (array_values($toAdd) as $key=>$array_values)
$tmp[$key]=checkaddslashes($array_values);
$values = "'".implode(array_values($tmp), "','")."'"; # better
$values = str_replace("'NULL'", 'NULL', $values);
if ($low_priority)
$query = 'INSERT DELAYED INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');';
else
$query = 'INSERT INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');';
if ($low_priority)
$query = 'INSERT DELAYED INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');';
else
$query = 'INSERT INTO `'.$table.'` (`'.$fields.'`) VALUES ('.$values.');';
if ($debug) $tdeb=microtime_float();
$res = mysql_query($query, $this->con_id);
@ -73,15 +71,15 @@ public function insert($table, $toAdd, $debug=false, $low_priority=false){
return $res;
}
public function update($table, $update, $where, $debug=false, $limit=0, $low_priority=false){
$this->setDB();
public function update($table, $update, $where, $debug=false, $limit=0, $low_priority=false)
{
$fields = array_keys($update);
$values = array_values($update);
$i=0;
if ($low_priority)
$query='UPDATE LOW_PRIORITY `'.$table.'` SET ';
else
$query='UPDATE `'.$table.'` SET ';
if ($low_priority)
$query='UPDATE LOW_PRIORITY `'.$table.'` SET ';
else
$query='UPDATE `'.$table.'` SET ';
while(isset($fields[$i])){
if($i>0) { $query.=', '; }
$query.=' `'.$fields[$i]."`='".checkaddslashes($values[$i])."'";
@ -96,12 +94,12 @@ public function update($table, $update, $where, $debug=false, $limit=0, $low_pri
return $res;
}
public function delete($table, $where, $debug=false, $low_priority=false) {
$this->setDB();
if ($low_priority)
$query='DELETE LOW_PRIORITY QUICK FROM `'.$table.'` WHERE '.$where.' LIMIT 1;';
else
$query='DELETE FROM `'.$table.'` WHERE '.$where.' LIMIT 1;';
public function delete($table, $where, $debug=false, $low_priority=false)
{
if ($low_priority)
$query='DELETE LOW_PRIORITY QUICK FROM `'.$table.'` WHERE '.$where.' LIMIT 1;';
else
$query='DELETE FROM `'.$table.'` WHERE '.$where.' LIMIT 1;';
if ($debug) $tdeb=microtime_float();
$res=mysql_query($query, $this->con_id);
if ($debug) $this->trace($query, $res, $tdeb);
@ -109,7 +107,6 @@ public function delete($table, $where, $debug=false, $low_priority=false) {
}
public function select($table, $fields, $where, $debug=false, $assoc=MYSQL_BOTH, $huge=false) {
$this->setDB();
if (mysql_select_db($this->database, $this->con_id) === false) {
echo date('Y/m/d - H:i:s') ." - ERREUR ".mysql_errno()." : Connection à la base de données impossible !".EOL;
echo date ('Y/m/d - H:i:s'). mysql_error();
@ -140,25 +137,25 @@ public function delete($table, $where, $debug=false, $low_priority=false) {
}
public function fetch($assoc=MYSQL_BOTH) {
return mysql_fetch_array($this->result, $assoc);
return mysql_fetch_array($this->result, $assoc);
}
public function trace($query, $res='', $tdeb=-1) {
if (!$fp=fopen(LOG_PATH.'/mysql_insert.log', 'a'))
return false;
$errnum=mysql_errno($this->con_id);
if ($tdeb>-1) $duree=substr(''.microtime_float()-$tdeb, 0, 5);
else $duree='N/D';
if (!fwrite($fp, date('Y/m/d - H:i:s') ." - $errnum - $res - $duree - $query\n"))
return false;
if (!fclose($fp))
return false;
return true;
if (!$fp=fopen(LOG_PATH.'/mysql_insert.log', 'a'))
return false;
$errnum=mysql_errno($this->con_id);
if ($tdeb>-1) $duree=substr(''.microtime_float()-$tdeb, 0, 5);
else $duree='N/D';
if (!fwrite($fp, date('Y/m/d - H:i:s') ." - $errnum - $res - $duree - $query\n"))
return false;
if (!fclose($fp))
return false;
return true;
}
/** Exécute la requête passé en paramètre **/
public function query($query, $debug=false){
$this->setDB();
public function query($query, $debug=false)
{
$this->result=mysql_query($query, $this->con_id);
return $this->result;
}
@ -173,17 +170,20 @@ public function delete($table, $where, $debug=false, $low_priority=false) {
return mysql_error($this->con_id);
}
/** Retourne le numéro de la dernière erreur **/
public function getLastErrorNum() {
public function getLastErrorNum()
{
return mysql_errno($this->con_id);
}
/** Retourne le libellé et le numéro de la dernière erreur **/
public function getLastError() {
public function getLastError()
{
return mysql_error($this->con_id).' ('.mysql_errno($this->con_id).')';
}
/** Retourne le nombre de lignes modifiées par la dernière requête **/
public function getAffectedRows() {
public function getAffectedRows()
{
return mysql_affected_rows($this->con_id);
}