Ensembles des mises à jours du WS v1
This commit is contained in:
parent
d1332e05e7
commit
004731cbf8
@ -11,17 +11,18 @@ include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION]
|
||||
Mise à jour des ratios en fonction de l'arrivée de nouveaux Bilans dans la base entreprise S&D.
|
||||
Calcul des ratios de toute la base entreprise S&D.
|
||||
|
||||
Options :
|
||||
-t Calculer tous les ratios (*)
|
||||
-i:XXX Reprendre à la ligne XXX
|
||||
-c Mettre à jour le cache
|
||||
-d:SSAAMMJJhhiiss Forcer la date de dernière MAJ à ...
|
||||
|
||||
(*) Option par défaut si aucun argument n'est passé.
|
||||
";
|
||||
-i:XXX Reprendre à la ligne XXX
|
||||
-c Mettre à jour le cache
|
||||
-d:SSAAMMJJhhiiss Forcer la date de dernière MAJ à ...
|
||||
|
||||
(*) Option par défaut si aucun argument n'est passé.
|
||||
";/* -e:X Calculer pour les X derniers exercices (3 par défaut)
|
||||
-f Calculer les scores financiers
|
||||
*/
|
||||
$iDeb=0;
|
||||
$updateCache=false;
|
||||
|
||||
@ -58,9 +59,9 @@ for ($i=1; isset($argv[$i]); $i++) {
|
||||
if ($updateCache) {
|
||||
include_once(INCLUDE_PATH.'scores/classMRatios.php');
|
||||
if (genereCacheRatios())
|
||||
echo date('Y/m/d - H:i:s') ." - Le cache des ratios a été généré avec succès !".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Le cache des ratios a été généré avec succès !".EOL;
|
||||
else
|
||||
echo date('Y/m/d - H:i:s') ." - Erreur lors de la génération du cache des ratios !".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Erreur lors de la génération du cache des ratios !".EOL;
|
||||
die();
|
||||
}
|
||||
|
||||
@ -72,23 +73,23 @@ for ($i=1; isset($argv[$i]); $i++) {
|
||||
$lastUpdate=$tabLast[0]['lastInsert'];
|
||||
if ($tabLast[0]['lastUpdate']>$lastUpdate) $lastUpdate=$tabLast[0]['lastUpdate'];
|
||||
|
||||
/** On vérifie la présence du cache de calcul des ratios **/
|
||||
/** On vérifie la présence du cache de calcul des ratios **/
|
||||
if (!file_exists(INCLUDE_PATH.'tmp/configMRatios.php'))
|
||||
die(date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'existe pas !".EOL);
|
||||
/** On vérifie qu'il n'y a pas de nouvelles formules à mettre dans le cache de calcul des ratios **/
|
||||
/** On vérifie qu'il n'y a pas de nouvelles formules à mettre dans le cache de calcul des ratios **/
|
||||
elseif (strtr($lastUpdate, array(':'=>'','-'=>'', ' '=>''))>date('YmdHis',filectime(INCLUDE_PATH.'tmp/configMRatios.php'))) {
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR FATALE, le cache ratio n'est pas à jour !", date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (nouvelles formules ?). Relancer à l'option -c !");
|
||||
die(date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (nouvelles formules ?). Relancer à l'option -c !".EOL);
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR FATALE, le cache ratio n'est pas à jour !", date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (nouvelles formules ?). Relancer à l'option -c !");
|
||||
die(date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (nouvelles formules ?). Relancer à l'option -c !".EOL);
|
||||
}
|
||||
/** On vérifie que le programme de MAJ du cache n'a pas été modifié **/
|
||||
elseif (date('YmdHis',filectime(INCLUDE_PATH.'scores/classMRatios.php'))>date('YmdHis',filectime(INCLUDE_PATH.'tmp/configMRatios.php'))) // Le fichier de cache est déprécié
|
||||
die(date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (programme modifié). Relancer à l'option -c !".EOL);
|
||||
/** On vérifie que le programme de MAJ du cache n'a pas été modifié **/
|
||||
elseif (date('YmdHis',filectime(INCLUDE_PATH.'scores/classMRatios.php'))>date('YmdHis',filectime(INCLUDE_PATH.'tmp/configMRatios.php'))) // Le fichier de cache est déprécié
|
||||
die(date('Y/m/d - H:i:s') ." - ERREUR FATALE : Le cache des calculs de ratio n'est pas à jour (programme modifié). Relancer à l'option -c !".EOL);
|
||||
|
||||
include_once(INCLUDE_PATH.'tmp/configMRatios.php');
|
||||
|
||||
echo date('Y/m/d - H:i:s') ." - Formules de calcul des ratios déjà en cache.".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Formules de calcul des ratios déjà en cache.".EOL;
|
||||
|
||||
/** Recherche de la dernière mise à jour des ratios secteurs **/
|
||||
/** Recherche de la dernière mise à jour des ratios secteurs **/
|
||||
$tabLast=$iDb->select( 'ratios_secteurs',
|
||||
'max(dateUpdate) AS lastUpdate, max(dateInsert) AS lastInsert',
|
||||
'1');
|
||||
@ -96,36 +97,36 @@ for ($i=1; isset($argv[$i]); $i++) {
|
||||
if ($tabLast[0]['lastUpdate']>$lastUpdate) $lastUpdate=$tabLast[0]['lastUpdate'];
|
||||
if ($dateDeb>20000101123000) $lastUpdate=$dateDeb;
|
||||
|
||||
echo(date('Y/m/d - H:i:s') ." - La dernière mise à jour des ratios secteurs date du $lastUpdate...".EOL);
|
||||
echo(date('Y/m/d - H:i:s') ." - La dernière mise à jour des ratios secteurs date du $lastUpdate...".EOL);
|
||||
|
||||
$nbRows=$iDb->select( 'ratios_tmp', 'siren, lastUpdate', "1", false, MYSQL_ASSOC, true);
|
||||
if ($nbRows>0) {
|
||||
$modeSuite=true;
|
||||
echo date('Y/m/d - H:i:s') ." - Il reste $nbRows entreprises pour lesquels il faut mettre à jour les ratios secteurs...".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Il reste $nbRows entreprises pour lesquels il faut mettre à jour les ratios secteurs...".EOL;
|
||||
} else {
|
||||
/** On met en table temporaire les siren en cas de plantage du script **/
|
||||
$modeSuite=false;
|
||||
|
||||
// Date du dernier bilan inseré
|
||||
// Date du dernier bilan inseré
|
||||
$tabLast=$iDb->select( 'bilans',
|
||||
'MAX(dateInsert) AS lastDateInsert',
|
||||
"siren>100 AND dateInsert>='$lastUpdate' AND typeBilan IN ('N','',' ','A','B') ORDER BY dateInsert DESC");
|
||||
$lastDateBilan=strtr($tabLast[0]['lastDateInsert'],array(' '=>'',':'=>'','-'=>''));
|
||||
echo(date('Y/m/d - H:i:s') ." - Le dernier bilan inséré en base date du $lastDateBilan...".EOL);
|
||||
echo(date('Y/m/d - H:i:s') ." - Le dernier bilan inséré en base date du $lastDateBilan...".EOL);
|
||||
|
||||
// Liste des derniers Bilans insérés depuis le dernier calcul des ratios
|
||||
// Liste des derniers Bilans insérés depuis le dernier calcul des ratios
|
||||
$nbRows=$iDb->select( 'bilans', 'DISTINCT siren', "siren>100 AND dateInsert>='$lastUpdate' AND typeBilan IN ('N','',' ','A','B') ORDER BY dateInsert DESC", false, MYSQL_ASSOC, true);
|
||||
$lastDate=strtr($lastUpdate,array(' '=>'',':'=>'','-'=>''));
|
||||
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows entreprises avec nouveaux bilans pour calcul des ratios secteurs...".EOL;
|
||||
$iDb2->query('DROP TABLE IF EXISTS ratios_tmp;');
|
||||
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la création de la table temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
|
||||
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la création de la table temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
|
||||
$strSQL="CREATE TABLE IF NOT EXISTS ratios_tmp ( siren int(9) unsigned zerofill NOT NULL, lastUpdate bigint(14) unsigned zerofill NOT NULL, lastBilan bigint(14) unsigned zerofill NOT NULL, PRIMARY KEY(siren) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
|
||||
$iDb2->query($strSQL);
|
||||
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la création de la table temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
|
||||
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la création de la table temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
|
||||
while($entrep=$iDb->fetch(MYSQL_ASSOC)) {
|
||||
$iDb2->insert('ratios_tmp', array('siren'=>$entrep['siren'], 'lastUpdate'=>$lastDate, 'lastBilan'=>$lastDateBilan));
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - Les éléments ont été mis en table temporaire en cas de reprise sur erreur !".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Les éléments ont été mis en table temporaire en cas de reprise sur erreur !".EOL;
|
||||
$nbRows=$iDb->select( 'ratios_tmp', 'siren, lastUpdate, lastBilan', "1", false, MYSQL_ASSOC, true);
|
||||
}
|
||||
|
||||
@ -145,26 +146,26 @@ for ($i=1; isset($argv[$i]); $i++) {
|
||||
|
||||
$mBil=new MBilans($siren);
|
||||
|
||||
/** Récupération des informations Identitaires **/
|
||||
/** Récupération des informations Identitaires **/
|
||||
$tabIdentite=@$iInsee->getIdentiteLight($siren);
|
||||
$naf=$tabIdentite['NafEnt'];
|
||||
$nafLib=$tabIdentite['NafEntLib'];
|
||||
$efftr=$tabIdentite['Effectif'];
|
||||
$fj=$tabIdentite['FJ'];
|
||||
|
||||
/** On Recherche le dernier Bilan mis à jour **/
|
||||
/** On Recherche le dernier Bilan mis à jour **/
|
||||
$tabBilans=$mBil->listeBilans();
|
||||
$nbBilansTot=count($tabBilans);
|
||||
$tabBilans2=array();
|
||||
foreach ($tabBilans as $mil=>$infosBilan) {
|
||||
/** On vérifie s'il n'y a pas de Bilans vides **/
|
||||
/** On vérifie s'il n'y a pas de Bilans vides **/
|
||||
if ($infosBilan['dureeExercice']==0) {
|
||||
print_r($infosBilan);
|
||||
echo date('Y/m/d - H:i:s') ." - Erreur : Bilans vide en base pour le siren $siren !".EOL;
|
||||
continue(2);
|
||||
}
|
||||
/** On ne garde que les Bilans dont la date de provenance est > à la date de dernière Mise à jour
|
||||
** car les ratios secteurs des autres bilans on déjà été calculés ! **/
|
||||
/** On ne garde que les Bilans dont la date de provenance est > à la date de dernière Mise à jour
|
||||
** car les ratios secteurs des autres bilans on déjà été calculés ! **/
|
||||
if ($infosBilan['dateInsert']>=$lastDate)
|
||||
$tabBilans2[$mil]=$infosBilan;
|
||||
}
|
||||
@ -193,30 +194,30 @@ for ($i=1; isset($argv[$i]); $i++) {
|
||||
foreach ($tabRatios as $i=>$R) {
|
||||
if ($f==0) $b++;
|
||||
$id=$formule['id'];
|
||||
// Si on n'est pas une banque/assurance, on ne calcul pas les ratios 700 à 799
|
||||
// Si on n'est pas une banque/assurance, on ne calcul pas les ratios 700 à 799
|
||||
if ($naf4<>'ASSU' && $naf4<>'BANQ' && $id>=700 && $id<800)
|
||||
continue;
|
||||
|
||||
$annee=substr($tabBilan[$i]['DATE_CLOTURE'],0,4);
|
||||
|
||||
if ($R[$id]==='NS' || $R[$id]===false )
|
||||
//echo "Le ratio n°$id est non significatif (".$R[$id].") pour le siren $siren et l'année $annee !".EOL;
|
||||
//echo "Le ratio n°$id est non significatif (".$R[$id].") pour le siren $siren et l'année $annee !".EOL;
|
||||
continue;
|
||||
|
||||
|
||||
/** Si c'est un ratio EUR, on le passe en K **/
|
||||
/** Si c'est un ratio EUR, on le passe en K€ **/
|
||||
if ($formule['unite']=='EUR') $mt=$R[$id]/1000;
|
||||
else $mt=$R[$id];
|
||||
|
||||
/** On vérifie les bornes MIN et MAX **/
|
||||
/** On vérifie les bornes MIN et MAX **/
|
||||
if ($formule['min']<>'' && $mt<$formule['min']) {
|
||||
echo "Ratio n°$id, borne Mini non nulle (".$formule['min'].") et le montant est inférieur : $mt<".$formule['min']." pour le siren $siren et l'année $annee".EOL;
|
||||
echo "Ratio n°$id, borne Mini non nulle (".$formule['min'].") et le montant est inférieur : $mt<".$formule['min']." pour le siren $siren et l'année $annee".EOL;
|
||||
continue;
|
||||
} elseif ($formule['max']<>'' && $mt>$formule['max']) {
|
||||
echo "Ratio n°$id, borne Maxi non nulle (".$formule['max'].") et le montant est supérieur : $mt>".$formule['max']." pour le siren $siren et l'année $annee".EOL;
|
||||
echo "Ratio n°$id, borne Maxi non nulle (".$formule['max'].") et le montant est supérieur : $mt>".$formule['max']." pour le siren $siren et l'année $annee".EOL;
|
||||
continue;
|
||||
} //else
|
||||
//echo "Ratio n°$id compris entre bornes ".$formule['min']." < $mt < ".$formule['max']." pour le siren $siren et l'année $annee".EOL;
|
||||
//echo "Ratio n°$id compris entre bornes ".$formule['min']." < $mt < ".$formule['max']." pour le siren $siren et l'année $annee".EOL;
|
||||
|
||||
/** Lecture des chiffres existants dans la table ratios_secteurs **/
|
||||
$tabTmp=$iDb2->select( 'ratios_secteurs',
|
||||
@ -234,7 +235,7 @@ for ($i=1; isset($argv[$i]); $i++) {
|
||||
$tabUpdate=array( 'montant' => $mt2,
|
||||
'nombre' => $nb2,
|
||||
);
|
||||
if (!$iDb2->update('ratios_secteurs', $tabUpdate, "id=$id AND naf4='$naf4' AND naf5='$naf5' AND annee=$annee") || $iDb2->getAffectedRows()==0 ) { // getAffectedRows ajouté le 14 mai 2009
|
||||
if (!$iDb2->update('ratios_secteurs', $tabUpdate, "id=$id AND naf4='$naf4' AND naf5='$naf5' AND annee=$annee") || $iDb2->getAffectedRows()==0 ) { // getAffectedRows ajouté le 14 mai 2009
|
||||
$tabInsert=array_merge($tabUpdate, array( 'id'=>$id,
|
||||
'naf4'=>$naf4,
|
||||
'naf5'=>$naf5,
|
||||
@ -243,22 +244,22 @@ for ($i=1; isset($argv[$i]); $i++) {
|
||||
));
|
||||
if (!$iDb2->insert('ratios_secteurs', $tabInsert) && mysql_errno()<>1062) {
|
||||
$pct=round(($k/$nbRows)*100,2);
|
||||
echo date('Y/m/d - H:i:s') ." - $k entreprises ($pct %) dont les ratios ont été calculés pour un total de $b bilans ($siren)...".EOL;
|
||||
echo date('Y/m/d - H:i:s') .' - ERREUR SQL n°'.mysql_errno().' : '.mysql_error().EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - $k entreprises ($pct %) dont les ratios ont été calculés pour un total de $b bilans ($siren)...".EOL;
|
||||
echo date('Y/m/d - H:i:s') .' - ERREUR SQL n°'.mysql_errno().' : '.mysql_error().EOL;
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
if ($k%1000==0 && $f==0 && $i==0) {
|
||||
$pct=round(($k/$nbRows)*100,2);
|
||||
echo date('Y/m/d - H:i:s') ." - $k entreprises ($pct %) dont les ratios ont été calculés pour un total de $b bilans ($siren)...".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - $k entreprises ($pct %) dont les ratios ont été calculés pour un total de $b bilans ($siren)...".EOL;
|
||||
}
|
||||
}
|
||||
}
|
||||
$iDb2->delete('ratios_tmp', "siren=$siren");
|
||||
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la suppression des informations temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
|
||||
if (mysql_errno()>0) echo date('Y/m/d - H:i:s') .' - ERREUR SQL lors de la suppression des informations temporaires, n°'.mysql_errno().' : '.mysql_error().EOL;
|
||||
}
|
||||
echo date('Y/m/d - H:i:s') ." - Les ratios ont été mis à jour ; suppression des informations temporaires.".EOL;
|
||||
echo date('Y/m/d - H:i:s') ." - Les ratios ont été mis à jour ; suppression des informations temporaires.".EOL;
|
||||
|
||||
$iDb2->query('DROP TABLE IF EXISTS jo.ratios_tmp;');
|
||||
|
||||
|
@ -8,7 +8,18 @@ include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||||
include_once(INCLUDE_PATH.'scores/classMRegression.php');
|
||||
include_once('/var/www/html/ws2/WsEntreprise.php');
|
||||
include_once(FWK_PATH.'mail/sendMail.php');
|
||||
/*
|
||||
for ($i=1; $i<=200; $i++) {
|
||||
$date=date('H:i:s');
|
||||
sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Mesage de test n°$i - $date", "Bonjour,
|
||||
Voici le mail n°$i.
|
||||
|
||||
Cordialement,
|
||||
YLN");//, '', array('kbis'=>'/tmp/kbis-518453394.pdf'));
|
||||
}
|
||||
|
||||
die();
|
||||
*/
|
||||
$strInfoScript='Usage : '.basename($argv[0]). " <option> [FICHIERS]
|
||||
Génération du cache des variables courantes si nécessaire.
|
||||
|
||||
@ -29,9 +40,16 @@ for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||||
case '?': die($strInfoScript); break;
|
||||
default: die('Option '. $argv[$i] . ' inconnue !'.EOL); break;
|
||||
}
|
||||
}
|
||||
}// else $tabFichLigneCmd[]=$argv[$i];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$iDb=new WDB();
|
||||
|
||||
global $tabVariables;
|
||||
@ -113,7 +131,67 @@ if (!$modeGeneration &&
|
||||
if (file_put_contents('/var/www/html/ws2/data/tables/tables.bin',serialize($tabVariables)))
|
||||
echo date('Y/m/d - H:i:s') ." - Cache des tables associées généré$strFin".EOL;
|
||||
}
|
||||
|
||||
//print_r($tabVariables);
|
||||
die();
|
||||
|
||||
?>
|
||||
|
||||
$R[6]=555;
|
||||
|
||||
$var='R[6]';
|
||||
|
||||
echo "'${${$var}}'";
|
||||
die();
|
||||
|
||||
if (1==1 && 2==3 && (3==3 || 5==5 ))
|
||||
echo 'Vrai';
|
||||
else
|
||||
echo 'Faux';
|
||||
echo EOL;
|
||||
die();
|
||||
$siren=391032455;
|
||||
//572014199;
|
||||
//552144503;
|
||||
|
||||
$iWs=new WsEntreprise();
|
||||
|
||||
$tabRatios=@$iWs->getRatios($siren);
|
||||
//print_r($tabRatios);
|
||||
$iMax=count($tabRatios['result']['RatiosEntrep'])-1;
|
||||
|
||||
$r=$a=array();
|
||||
for ($i=$iMax;$i>=0;$i--)
|
||||
$r[]=$tabRatios['result']['RatiosEntrep'][$i]['r6']/1000;
|
||||
|
||||
for ($i=$iMax;$i>=0;$i--)
|
||||
$a[]=substr($tabRatios['result']['BilansInfos'][$i]['dateCloture'],0,4)*1;
|
||||
|
||||
$y3=$r;//array(150, 155, 160, 165 ,170 ,175 ,180 ,185 ,190);
|
||||
$x3=$a;//array(2000,2001,2002,2003,2004,2005,2006,2007,2008);
|
||||
/*
|
||||
|
||||
$y3=array(150, 155, 160, 165 ,170 ,175 ,180 ,185 ,190);
|
||||
$x3=array(2000,2001,2002,2003,2004,2005,2006,2007,2008);
|
||||
*/
|
||||
|
||||
print("Années :".EOL);
|
||||
print_r($a);
|
||||
print("CA :".EOL);
|
||||
print_r($r);
|
||||
|
||||
$oReg= new Regression($y3,$x3);
|
||||
|
||||
for ($i=0; $i<5; $i++) {
|
||||
print("Meth $i".EOL);
|
||||
print_r($oReg->OptMV($i));
|
||||
|
||||
print("Meth OPT".EOL);
|
||||
print_r($oReg->GetOpt());
|
||||
|
||||
$an=3;
|
||||
print("Projection à $an:".EOL);
|
||||
print_r($oReg->GetProjection($an));
|
||||
|
||||
echo "Taux de Progression de ".$oReg->TauxProgression($an).EOL;
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
class WChiffes {
|
||||
|
||||
private static $tabChiffresEnLEttres = array( 0=>'zéro',
|
||||
private static $tabChiffresEnLEttres = array( 0=>'zéro',
|
||||
1=>'un',
|
||||
2=>'deux',
|
||||
3=>'trois',
|
||||
@ -62,10 +62,10 @@ define('NEL_ORDINAL', 0x0200);
|
||||
define('NEL_NIEME', 0x0400);
|
||||
|
||||
|
||||
# Le tableau associatif $NEL contient toutes les variables utilisées
|
||||
# de façon globale dans ce module. ATTENTION : ce nom est assez court,
|
||||
# et cela pourrait poser des problèmes de collision avec une autre
|
||||
# variable si plusieurs modules sont inclus dans le même programme.
|
||||
# Le tableau associatif $NEL contient toutes les variables utilisées
|
||||
# de façon globale dans ce module. ATTENTION : ce nom est assez court,
|
||||
# et cela pourrait poser des problèmes de collision avec une autre
|
||||
# variable si plusieurs modules sont inclus dans le même programme.
|
||||
|
||||
$NEL = array(
|
||||
'1-99' => array(
|
||||
@ -122,7 +122,7 @@ $NEL = array(
|
||||
'separateur' => ' '
|
||||
);
|
||||
|
||||
# Si le tableau $NEL['illi'] s'arrête à 'sext', alors les deux valeurs
|
||||
# Si le tableau $NEL['illi'] s'arrête à 'sext', alors les deux valeurs
|
||||
# suivantes sont respectivement '6' et ' de sextillions'.
|
||||
$NEL['maxilli'] = count($NEL['illi']) - 1;
|
||||
$NEL['de_maxillions'] = " de {$NEL['illi'][$NEL['maxilli']]}illions";
|
||||
@ -162,7 +162,7 @@ function enlettres_par3($par3)
|
||||
$par2 = $par3 % 100;
|
||||
$dizaine = floor($par2 / 10);
|
||||
|
||||
# On traite à part les particularités du français de référence
|
||||
# On traite à part les particularités du français de référence
|
||||
# 'soixante-dix', 'quatre-vingts' et 'quatre-vingt-dix'.
|
||||
$nom_par2 = NULL;
|
||||
switch ($dizaine) {
|
||||
@ -191,7 +191,7 @@ function enlettres_par3($par3)
|
||||
}
|
||||
}
|
||||
|
||||
# Après les dizaines et les unités, il reste à voir les centaines
|
||||
# Après les dizaines et les unités, il reste à voir les centaines
|
||||
switch ($centaine) {
|
||||
case 0: return $nom_par2;
|
||||
case 1: return rtrim("cent {$nom_par2}");
|
||||
@ -205,55 +205,55 @@ function enlettres_par3($par3)
|
||||
|
||||
function enlettres_zilli($idx)
|
||||
{
|
||||
# Noms des 0ème à 9ème zillions
|
||||
# Noms des 0ème à 9ème zillions
|
||||
static $petit = array(
|
||||
'n', 'm', 'b', 'tr', 'quatr', 'quint', 'sext', 'sept', 'oct', 'non'
|
||||
);
|
||||
# Composantes des 10ème à 999ème zillions
|
||||
# Composantes des 10ème à 999ème zillions
|
||||
static $unite = array(
|
||||
'<', 'un<', 'duo<', 'tre<sé',
|
||||
'quattuor<', 'quin<', 'se<xsé',
|
||||
'septe<mné', 'octo<', 'nove<mné'
|
||||
'<', 'un<', 'duo<', 'tre<sé',
|
||||
'quattuor<', 'quin<', 'se<xsé',
|
||||
'septe<mné', 'octo<', 'nove<mné'
|
||||
);
|
||||
static $dizaine = array(
|
||||
'', 'né>déci<', 'ms>viginti<', 'ns>triginta<',
|
||||
'ns>quadraginta<', 'ns>quinquaginta<', 'né>sexaginta<',
|
||||
'né>septuaginta<', 'mxs>octoginta<', 'é>nonaginta<'
|
||||
'', 'né>déci<', 'ms>viginti<', 'ns>triginta<',
|
||||
'ns>quadraginta<', 'ns>quinquaginta<', 'né>sexaginta<',
|
||||
'né>septuaginta<', 'mxs>octoginta<', 'é>nonaginta<'
|
||||
);
|
||||
static $centaine = array(
|
||||
'>', 'nxs>cent', 'né>ducent', 'ns>trécent',
|
||||
'ns>quadringent', 'ns>quingent', 'né>sescent',
|
||||
'né>septingent', 'mxs>octingent', 'é>nongent'
|
||||
'>', 'nxs>cent', 'né>ducent', 'ns>trécent',
|
||||
'ns>quadringent', 'ns>quingent', 'né>sescent',
|
||||
'né>septingent', 'mxs>octingent', 'é>nongent'
|
||||
);
|
||||
|
||||
# Règles d'assimilation aux préfixes latins, modifiées pour accentuer
|
||||
# un éventuel 'é' de fin de préfixe.
|
||||
# Règles d'assimilation aux préfixes latins, modifiées pour accentuer
|
||||
# un éventuel 'é' de fin de préfixe.
|
||||
# (1) Si on trouve une lettre deux fois entre < > on la garde.
|
||||
# S'il y a plusieurs lettres dans ce cas, on garde la première.
|
||||
# S'il y a plusieurs lettres dans ce cas, on garde la première.
|
||||
# (2) Sinon on efface tout ce qui est entre < >.
|
||||
# (3) On remplace "treé" par "tré", "seé" par "sé", "septeé" par "septé"
|
||||
# et "noveé" par "nové".
|
||||
# (3) On remplace "treé" par "tré", "seé" par "sé", "septeé" par "septé"
|
||||
# et "noveé" par "nové".
|
||||
# (4) En cas de dizaine sans centaine, on supprime la voyelle en trop.
|
||||
# Par exemple "déciilli" devient "décilli" et "trigintailli" devient
|
||||
# Par exemple "déciilli" devient "décilli" et "trigintailli" devient
|
||||
# "trigintilli".
|
||||
#
|
||||
# Il est à noter que ces règles PERL (en particulier la première qui
|
||||
# est la plus complexe) sont *très* fortement inspirées du programme
|
||||
# de Nicolas Graner. On pourrait même parler de plagiat s'il n'avait
|
||||
# pas été au courant que je reprenais son code.
|
||||
# Il est à noter que ces règles PERL (en particulier la première qui
|
||||
# est la plus complexe) sont *très* fortement inspirées du programme
|
||||
# de Nicolas Graner. On pourrait même parler de plagiat s'il n'avait
|
||||
# pas été au courant que je reprenais son code.
|
||||
# Voir <http://www.graner.net/nicolas/nombres/nom.php>
|
||||
# et <http://www.graner.net/nicolas/nombres/nom-exp.php>
|
||||
#
|
||||
static $recherche = array(
|
||||
'/<[a-zé]*?([a-zé])[a-zé]*\1[a-zé]*>/', # (1)
|
||||
'/<[a-zé]*>/', # (2)
|
||||
'/eé/', # (3)
|
||||
'/<[a-zé]*?([a-zé])[a-zé]*\1[a-zé]*>/', # (1)
|
||||
'/<[a-zé]*>/', # (2)
|
||||
'/eé/', # (3)
|
||||
'/[ai]illi/' # (4)
|
||||
);
|
||||
static $remplace = array(
|
||||
'\\1', # (1)
|
||||
'', # (2)
|
||||
'é', # (3)
|
||||
'é', # (3)
|
||||
'illi' # (4)
|
||||
);
|
||||
|
||||
@ -316,13 +316,13 @@ function enlettres($nombre, $options=NULL, $separateur=NULL)
|
||||
return $nom;
|
||||
}
|
||||
|
||||
# On ne garde que les chiffres, puis on supprime les 0 du début
|
||||
# On ne garde que les chiffres, puis on supprime les 0 du début
|
||||
$nombre = preg_replace('/[^0-9]/', '', $nombre);
|
||||
$nombre = ltrim($nombre, '0');
|
||||
|
||||
if ($nombre == '') {
|
||||
if ($NEL['ordinal'] === 'nieme') return 'zéroïème';
|
||||
else return 'zéro';
|
||||
if ($NEL['ordinal'] === 'nieme') return 'zéroïème';
|
||||
else return 'zéro';
|
||||
}
|
||||
|
||||
$table_noms = array();
|
||||
@ -378,7 +378,7 @@ function enlettres($nombre, $options=NULL, $separateur=NULL)
|
||||
$nombre = str_replace(' ', '-', $nombre);
|
||||
}
|
||||
|
||||
# Nom (éventuel) et accord (éventuel) des substantifs
|
||||
# Nom (éventuel) et accord (éventuel) des substantifs
|
||||
$nom = rtrim("{$nombre} {$nom}");
|
||||
if ($nombre == 'un') {
|
||||
# Un seul million, milliard, etc., donc au singulier
|
||||
@ -387,7 +387,7 @@ function enlettres($nombre, $options=NULL, $separateur=NULL)
|
||||
$nom = preg_replace('/(illion|illiard)s/', '\\1', $nom, 1);
|
||||
}
|
||||
|
||||
# Ajout d'un séparateur entre chaque partie
|
||||
# Ajout d'un séparateur entre chaque partie
|
||||
if ($nom_enlettres == '') {
|
||||
$nom_enlettres = $nom;
|
||||
} else {
|
||||
@ -405,34 +405,34 @@ function enlettres($nombre, $options=NULL, $separateur=NULL)
|
||||
preg_replace('/(cent|vingt|illion|illiard)s/', '\\1', $nom_enlettres);
|
||||
|
||||
if ($NEL['ordinal'] !== 'nieme') {
|
||||
# Nombre ordinal simple (sans '-ième')
|
||||
# Nombre ordinal simple (sans '-ième')
|
||||
return $nom_enlettres;
|
||||
}
|
||||
|
||||
if ($nom_enlettres === 'un') {
|
||||
# Le féminin n'est pas traité ici. On fait la supposition
|
||||
# qu'il est plus facile de traiter ce cas à part plutôt
|
||||
# que de rajouter une option rien que pour ça.
|
||||
# Le féminin n'est pas traité ici. On fait la supposition
|
||||
# qu'il est plus facile de traiter ce cas à part plutôt
|
||||
# que de rajouter une option rien que pour ça.
|
||||
return 'premier';
|
||||
}
|
||||
|
||||
switch (substr($nom_enlettres, -1)) {
|
||||
case 'e':
|
||||
# quatre, onze à seize, trente à nonante, mille
|
||||
# exemple : quatre -> quatrième
|
||||
return substr($nom_enlettres, 0, -1) . 'ième';
|
||||
# quatre, onze à seize, trente à nonante, mille
|
||||
# exemple : quatre -> quatrième
|
||||
return substr($nom_enlettres, 0, -1) . 'ième';
|
||||
case 'f':
|
||||
# neuf -> neuvième
|
||||
return substr($nom_enlettres, 0, -1) . 'vième';
|
||||
# neuf -> neuvième
|
||||
return substr($nom_enlettres, 0, -1) . 'vième';
|
||||
case 'q':
|
||||
# cinq -> cinquième
|
||||
return $nom_enlettres . 'uième';
|
||||
# cinq -> cinquième
|
||||
return $nom_enlettres . 'uième';
|
||||
}
|
||||
|
||||
# Tous les autres cas.
|
||||
# Exemples: deuxième, troisième, vingtième, trente et unième,
|
||||
# neuf centième, un millionième, quatre-vingt milliardième.
|
||||
return $nom_enlettres . 'ième';
|
||||
# Exemples: deuxième, troisième, vingtième, trente et unième,
|
||||
# neuf centième, un millionième, quatre-vingt milliardième.
|
||||
return $nom_enlettres . 'ième';
|
||||
}
|
||||
|
||||
function enchiffres_petit($mot)
|
||||
@ -481,11 +481,11 @@ function enchiffres_petit($mot)
|
||||
|
||||
function enchiffres_zilli($mot)
|
||||
{
|
||||
# Noms des 0ème à 9ème zillions
|
||||
# Noms des 0ème à 9ème zillions
|
||||
static $petits = array(
|
||||
'n', 'm', 'b', 'tr', 'quadr', 'quint', 'sext', 'sept', 'oct', 'non'
|
||||
);
|
||||
# Composantes des 10ème à 999ème zillions
|
||||
# Composantes des 10ème à 999ème zillions
|
||||
static $unites = array(
|
||||
'', 'un', 'duo', 'tre', 'quattuor', 'quin', 'se', 'septe', 'octo', 'nove'
|
||||
);
|
||||
@ -525,19 +525,19 @@ function enchiffres_zilli($mot)
|
||||
|
||||
function enchiffres_grand($mot)
|
||||
{
|
||||
# Quelques remplacements initiaux pour simplifier (les 'é' ont déjà
|
||||
# été tous transformés en 'e').
|
||||
# Quelques remplacements initiaux pour simplifier (les 'é' ont déjà
|
||||
# été tous transformés en 'e').
|
||||
# (1) Je supprime le 's' final de '-illions' ou '-illiards' pour ne
|
||||
# tester que '-illion' ou '-illiard'.
|
||||
# (2) Les deux orthographes étant possibles pour quadrillion ou
|
||||
# (2) Les deux orthographes étant possibles pour quadrillion ou
|
||||
# quatrillion, je teste les deux. Noter que j'aurais pu changer
|
||||
# 'quadr' en 'quatr' au lieu de l'inverse, mais alors cela aurait
|
||||
# aussi changé 'quadragintillion' en 'quatragintillion', ce qui
|
||||
# n'est pas franchement le but recherché.
|
||||
# (3) En latin, on trouve parfois 'quatuor' au lieu de 'quattuor'. De même,
|
||||
# aussi changé 'quadragintillion' en 'quatragintillion', ce qui
|
||||
# n'est pas franchement le but recherché.
|
||||
# (3) En latin, on trouve parfois 'quatuor' au lieu de 'quattuor'. De même,
|
||||
# avec google on trouve quelques 'quatuordecillions' au milieu des
|
||||
# 'quattuordecillions' (environ 1 sur 10).
|
||||
# (4) La règle de John Conway et Allan Wechsler préconisait le préfixe
|
||||
# (4) La règle de John Conway et Allan Wechsler préconisait le préfixe
|
||||
# 'quinqua' au lieu de 'quin' que j'ai choisi. Pour accepter les deux,
|
||||
# je remplace 'quinqua' par 'quin', sauf dans 'quinquaginta' (50)
|
||||
# et dans 'quinquadraginta' (45).
|
||||
@ -584,7 +584,7 @@ function enchiffres_grand($mot)
|
||||
$nombre .= $par3;
|
||||
}
|
||||
if (strlen($nombre) > 3) {
|
||||
# On n'accepte que les nombres inférieurs au millinillion
|
||||
# On n'accepte que les nombres inférieurs au millinillion
|
||||
# pour limiter le temps de calcul
|
||||
return 0;
|
||||
}
|
||||
@ -642,7 +642,7 @@ function enchiffres_ajouter_grand(&$table_grands, $mantisse, $exposant)
|
||||
|
||||
function enchiffres($nom)
|
||||
{
|
||||
$nom = preg_replace('/[éèÉÈ]/', 'e', $nom);
|
||||
$nom = preg_replace('/[éèÉÈ]/', 'e', $nom);
|
||||
$nom = strtolower($nom);
|
||||
$table_mots = preg_split('/[^a-z]+/', $nom);
|
||||
|
||||
@ -668,7 +668,7 @@ function enchiffres($nom)
|
||||
}
|
||||
|
||||
if ($grand == 0) {
|
||||
# Ce nombre était trop grand (millinillion et plus) : on annule le
|
||||
# Ce nombre était trop grand (millinillion et plus) : on annule le
|
||||
# tout pour limiter le temps de calcul.
|
||||
$mantisse = 0;
|
||||
$exposant = 0;
|
||||
@ -709,7 +709,7 @@ function enchiffres($nom)
|
||||
|
||||
function enchiffres_aerer($nombre, $blanc=' ', $virgule=',', $tranche=3)
|
||||
{
|
||||
# Si c'est un nombre à virgule, on traite séparément les deux parties
|
||||
# Si c'est un nombre à virgule, on traite séparément les deux parties
|
||||
if ($virgule !== NULL) {
|
||||
$ent_dec = preg_split("/$virgule/", $nombre);
|
||||
if (count($ent_dec) >= 2) {
|
||||
@ -723,18 +723,18 @@ function enchiffres_aerer($nombre, $blanc=' ', $virgule=',', $tranche=3)
|
||||
$nombre = preg_replace('/[^0-9]/', '', $nombre);
|
||||
|
||||
# Il est plus logique d'avoir un nombre positif pour les entiers,
|
||||
# donc négatif pour la partie décimale, mais plus pratique de
|
||||
# donc négatif pour la partie décimale, mais plus pratique de
|
||||
# faire le contraire pour les substr().
|
||||
$tranche = - (int)$tranche;
|
||||
|
||||
if ($tranche == 0) {
|
||||
# on voulait juste supprimer les caractères en trop, pas en rajouter
|
||||
# on voulait juste supprimer les caractères en trop, pas en rajouter
|
||||
return $nombre;
|
||||
}
|
||||
|
||||
$nombre_aere = '';
|
||||
if ($tranche < 0) {
|
||||
# entier, ou partie entière d'un nombre décimal
|
||||
# entier, ou partie entière d'un nombre décimal
|
||||
while ($nombre != '') {
|
||||
$par3 = substr($nombre, $tranche);
|
||||
$nombre = substr($nombre, 0, $tranche);
|
||||
@ -745,7 +745,7 @@ function enchiffres_aerer($nombre, $blanc=' ', $virgule=',', $tranche=3)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
# partie décimale
|
||||
# partie décimale
|
||||
while ($nombre != '') {
|
||||
$par3 = substr($nombre, 0, $tranche);
|
||||
$nombre = substr($nombre, $tranche);
|
||||
|
@ -68,6 +68,8 @@ function getUrl($url, $strCookies='', $postData='', $referer='', $debug=false, $
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
||||
//curl_setopt($ch, CURLOPT_MAXREDIRS, 1);
|
||||
if (preg_match('/^https/i',$url))
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
|
||||
$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
|
||||
|
@ -12,11 +12,11 @@ function ftp_mget($ftp_url, $ftp_user, $ftp_pass, $ftp_dir, $local_dir, $debug=n
|
||||
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de s'authentifier sur le serveur FTP (user=$ftp_user)!".EOL;
|
||||
return false;
|
||||
}
|
||||
// Récupération du contenu d'un dossier
|
||||
// Récupération du contenu d'un dossier
|
||||
$contents = ftp_nlist($conn_id, $ftp_dir);
|
||||
// print_r($contents);
|
||||
// print_r(ftp_rawlist($conn_id, $ftp_dir));
|
||||
$nbFic=0; // Nombre de fichiers récupérés
|
||||
$nbFic=0; // Nombre de fichiers récupérés
|
||||
if (is_array($contents))
|
||||
foreach($contents as $k => $server_file) {
|
||||
$tailleDist = ftp_size($conn_id, $server_file);
|
||||
@ -24,10 +24,10 @@ function ftp_mget($ftp_url, $ftp_user, $ftp_pass, $ftp_dir, $local_dir, $debug=n
|
||||
$tailleLoc=0;
|
||||
if ($dateDist != -1) {
|
||||
$tabFichiers[$server_file]['dateDispo']=date('Y-m-d H:i:s', $dateDist);
|
||||
// echo date ('Y/m/d - H:i:s') ." - Le fichier distant $server_file a été modifié le ".date("d/m/Y à H:i:s.",$dateDist)."\n";
|
||||
// echo date ('Y/m/d - H:i:s') ." - Le fichier distant $server_file a été modifié le ".date("d/m/Y à H:i:s.",$dateDist)."\n";
|
||||
} else {
|
||||
$tabFichiers[$server_file]['dateDispo']=NULL;
|
||||
// echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de récupérer l'heure de modification du fichier distant $server_file !\n";
|
||||
// echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de récupérer l'heure de modification du fichier distant $server_file !\n";
|
||||
}
|
||||
$tabFichiers[$server_file]['taille']=$tailleDist;
|
||||
if ($tailleDist != -1) {
|
||||
@ -41,10 +41,10 @@ function ftp_mget($ftp_url, $ftp_user, $ftp_pass, $ftp_dir, $local_dir, $debug=n
|
||||
}
|
||||
if ($tailleDist<>$tailleLoc) {
|
||||
if (ftp_get($conn_id, $local_dir. $server_file, $server_file, FTP_BINARY))
|
||||
//echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL;
|
||||
//echo date ('Y/m/d - H:i:s')." - Fichier distant $server_file téléchargé avec succès".EOL;
|
||||
$nbFic++;
|
||||
else {
|
||||
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file non téléchargé !".EOL;
|
||||
if ($debug<>null) echo date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file non téléchargé !".EOL;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -7,12 +7,12 @@ define ('ALIGN_LEFT', 0);
|
||||
define ('ALIGN_RIGHT', 1);
|
||||
|
||||
|
||||
/**Initialisation d'une chaîne de caractère
|
||||
/**Initialisation d'une chaîne de caractère
|
||||
*
|
||||
* @param string $chaine Chaîne de caractère initiale
|
||||
* @param int $taille Taille de la chaîne de caractère à initialiser
|
||||
* @param string $caractere_pour_combler Caractère à utiliser pour combler la chaîne de caractère (espace par défaut)
|
||||
* @param string $align Aligner la chaîne de caractère à droite (right) ou à gauche (left, par défaut)
|
||||
* @param string $chaine Chaîne de caractère initiale
|
||||
* @param int $taille Taille de la chaîne de caractère à initialiser
|
||||
* @param string $caractere_pour_combler Caractère à utiliser pour combler la chaîne de caractère (espace par défaut)
|
||||
* @param string $align Aligner la chaîne de caractère à droite (right) ou à gauche (left, par défaut)
|
||||
* @return string
|
||||
*/
|
||||
function initstr($chaine, $taille, $caractere_pour_combler=' ', $align=ALIGN_LEFT) {
|
||||
@ -34,7 +34,7 @@ define ('ALIGN_RIGHT', 1);
|
||||
/**
|
||||
* Ajout d'anti-slashs s'il y a lieu en vu d'une insertion en BDD
|
||||
*
|
||||
* @param string $str Chaine de caractère
|
||||
* @param string $str Chaine de caractère
|
||||
* @return unknown
|
||||
*/
|
||||
|
||||
@ -100,7 +100,7 @@ define ('ALIGN_RIGHT', 1);
|
||||
$strIn=str_replace('y', 'i', $strIn);
|
||||
/** On supprime les accents **/
|
||||
$strIn=trimAccent($strIn);
|
||||
/** On retire les 'H' muets sauf ceux précédés par 'C' ou 'S' **/
|
||||
/** On retire les 'H' muets sauf ceux précédés par 'C' ou 'S' **/
|
||||
$strIn = preg_replace ('/(?<![CS])H/', '', $strIn);
|
||||
/** On remplace les 'PH' par des 'F' **/
|
||||
$strIn=str_replace('ph', 'f', $strIn);
|
||||
@ -122,14 +122,14 @@ define ('ALIGN_RIGHT', 1);
|
||||
$strIn=str_replace('oua', '2', $strIn);
|
||||
$strIn=str_replace('ein', '4', $strIn);
|
||||
$strIn=str_replace('ain', '4', $strIn);
|
||||
/** Remplacement du son 'é' **/
|
||||
/** Remplacement du son 'é' **/
|
||||
$strIn=str_replace('ai', 'y', $strIn);
|
||||
$strIn=str_replace('ei', 'y', $strIn);
|
||||
$strIn=str_replace('er', 'yr', $strIn);
|
||||
$strIn=str_replace('ess', 'yss', $strIn);
|
||||
$strIn=str_replace('et', 'yt', $strIn);
|
||||
$strIn=str_replace('ez', 'yz', $strIn);
|
||||
/** Remplacement des groupes de 2 lettres sauf si voyelle ou son (1 à 4) AVANT **/
|
||||
/** Remplacement des groupes de 2 lettres sauf si voyelle ou son (1 à 4) AVANT **/
|
||||
$strIn=str_replace_except_voy('an', '1', $strIn, BEFORE);
|
||||
$strIn=str_replace_except_voy('am', '1', $strIn, BEFORE);
|
||||
$strIn=str_replace_except_voy('en', '1', $strIn, BEFORE);
|
||||
@ -137,7 +137,7 @@ define ('ALIGN_RIGHT', 1);
|
||||
$strIn=str_replace_except_voy('in', '4', $strIn, BEFORE);
|
||||
/** Remplacement du son 'SCH' **/
|
||||
$strIn=str_replace('sch', '5', $strIn);
|
||||
/** Remplacement du 'S' sauf si voyelle ou son (1 à 4) avant ou après **/
|
||||
/** Remplacement du 'S' sauf si voyelle ou son (1 à 4) avant ou après **/
|
||||
$strIn=str_replace_except_voy('in', '4', $strIn, BOTH);
|
||||
/** Remplacement de groupe de 2 lettres diverses **/
|
||||
$strIn=str_replace('oe', 'e', $strIn);
|
||||
@ -174,7 +174,7 @@ define ('ALIGN_RIGHT', 1);
|
||||
$strIn=str_replace('v', 'f', $strIn);
|
||||
$strIn=str_replace('m', 'n', $strIn);
|
||||
|
||||
/** Supression des lettres dupliquées **/
|
||||
/** Supression des lettres dupliquées **/
|
||||
$let=$strIn[0];
|
||||
$strIn2=$let;
|
||||
for ($i=1; $i<strlen($strIn); $i++)
|
||||
@ -192,7 +192,7 @@ define ('ALIGN_RIGHT', 1);
|
||||
if ($strIn2=='t' || $strIn2=='k' || $strIn2=='s' || $strIn2=='z')
|
||||
$strIn=substr($strIn,0,-1);
|
||||
|
||||
/** Supression des caractères non autorisés **/
|
||||
/** Supression des caractères non autorisés **/
|
||||
$j=10;
|
||||
$sout=array();
|
||||
for ($i=0; $i<strlen($strIn); $i++)
|
||||
@ -220,7 +220,7 @@ define ('ALIGN_RIGHT', 1);
|
||||
/**
|
||||
* CLASS soundex2
|
||||
* soundex2 French version
|
||||
* based on the algorithm described here : http://sqlpro.developpez.com/cours/soundex/ by Frédéric BROUARD
|
||||
* based on the algorithm described here : http://sqlpro.developpez.com/cours/soundex/ by Frédéric BROUARD
|
||||
*
|
||||
* author Johan Barbier <barbier_johan@hotmail.com>
|
||||
*/
|
||||
|
@ -105,24 +105,24 @@
|
||||
**/
|
||||
function debugLog($debugLevel, $message, $line, $file, $function, $class) {
|
||||
if (!file_exists('/var/www/log/debug.log')) {
|
||||
$fp=fopen('/var/www/log/debug.log', 'a');
|
||||
fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Memory;Message'.EOL);
|
||||
$fp=@fopen('/var/www/log/debug.log', 'a');
|
||||
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Memory;Message'.EOL);
|
||||
} else
|
||||
$fp=fopen('/var/www/log/debug.log', 'a');
|
||||
fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
|
||||
$fp=@fopen('/var/www/log/debug.log', 'a');
|
||||
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
|
||||
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
|
||||
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
|
||||
fclose($fp);
|
||||
@fclose($fp);
|
||||
if ($debugLevel=='E'){
|
||||
if (!file_exists('/var/www/log/debugError.log')) {
|
||||
$fp=fopen('/var/www/log/debugError.log', 'a');
|
||||
fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Message'.EOL);
|
||||
$fp=@fopen('/var/www/log/debugError.log', 'a');
|
||||
@fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Message'.EOL);
|
||||
} else
|
||||
$fp=fopen('/var/www/log/debugError.log', 'a');
|
||||
fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
|
||||
$fp=@fopen('/var/www/log/debugError.log', 'a');
|
||||
@fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'.
|
||||
$_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'.
|
||||
@gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL);
|
||||
fclose($fp);
|
||||
@fclose($fp);
|
||||
//die($message);
|
||||
}
|
||||
}
|
||||
|
@ -3,11 +3,11 @@
|
||||
) o------------------------------------------------------------------------------o
|
||||
* | This is HTMLMimeMail5. It is dual licensed as GPL and a commercial license. |
|
||||
* | If you use the code commercially (or if you don't want to be restricted by |
|
||||
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
|
||||
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
|
||||
* | roughly $98 depending on the exchange rate) and helps me out a lot. Thanks. |
|
||||
* o------------------------------------------------------------------------------o
|
||||
*
|
||||
* © Copyright 2005 Richard Heyes
|
||||
* © Copyright 2005 Richard Heyes
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -3,11 +3,11 @@
|
||||
* o------------------------------------------------------------------------------o
|
||||
* | This is HTMLMimeMail5. It is dual licensed as GPL and a commercial license. |
|
||||
* | If you use the code commercially (or if you don't want to be restricted by |
|
||||
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
|
||||
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
|
||||
* | roughly $98 depending on the exchange rate) and helps me out a lot. Thanks. |
|
||||
* o------------------------------------------------------------------------------o
|
||||
*
|
||||
* © Copyright Richard Heyes
|
||||
* © Copyright Richard Heyes
|
||||
*/
|
||||
|
||||
require_once(dirname(__FILE__) . '/mimePart.php');
|
||||
|
@ -3,11 +3,11 @@
|
||||
* o------------------------------------------------------------------------------o
|
||||
* | This is HTMLMimeMail5. It is dual licensed as GPL and a commercial license. |
|
||||
* | If you use the code commercially (or if you don't want to be restricted by |
|
||||
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
|
||||
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
|
||||
* | roughly $98 depending on the exchange rate) and helps me out a lot. Thanks. |
|
||||
* o------------------------------------------------------------------------------o
|
||||
*
|
||||
* © Copyright Richard Heyes
|
||||
* © Copyright Richard Heyes
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -32,7 +32,7 @@ $msg = "";
|
||||
$footer="";/*
|
||||
|
||||
_______________________________________________________________________
|
||||
Ce message et toutes les pièces jointes (ci-après le \"message\") sont établis a l'intention exclusive de ses destinataires.Si vous recevez ce message par erreur, merci de le détruire et d'en avertir immédiatement l'expéditeur par e-mail. Toute utilisation de ce message non conforme a sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse. Les communications sur Internet n'étant pas sécurisées, SCORES & DECISIONS S.A.S. informe qu'elle ne peut accepter aucune responsabilite quant au contenu de ce message.
|
||||
Ce message et toutes les pièces jointes (ci-après le \"message\") sont établis a l'intention exclusive de ses destinataires.Si vous recevez ce message par erreur, merci de le détruire et d'en avertir immédiatement l'expéditeur par e-mail. Toute utilisation de ce message non conforme a sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse. Les communications sur Internet n'étant pas sécurisées, SCORES & DECISIONS S.A.S. informe qu'elle ne peut accepter aucune responsabilite quant au contenu de ce message.
|
||||
This mail message and attachments (the \"message\") are solely intended for the addressees. It is confidential in nature . If you receive this message in error, please delete it and immediately notify the sender by e-mail. Any use other than its intended purpose, dissemination or disclosure, either whole or partial, is prohibited except if formal approval is granted. As communication on the Internet is not secure, SCORES & DECISIONS S.A.S. does not accept responsability for the content of this message.
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@ This mail message and attachments (the \"message\") are solely intended for the
|
||||
$send = $mail_object->send($to, $headers, $body);
|
||||
$nbEssais++;
|
||||
if (PEAR::isError($send)) {
|
||||
/** @todo tester les différents codes erreur **/
|
||||
/** @todo tester les différents codes erreur **/
|
||||
echo date('Y-m-d H:i:s'). " sendMail.php - essai #$nbEssais : ".$send->getMessage().EOL;
|
||||
if (preg_match('/too many connections|421/i', $send->getMessage()))
|
||||
sleep($nbEssais);
|
||||
@ -90,7 +90,7 @@ This mail message and attachments (the \"message\") are solely intended for the
|
||||
|
||||
} else {
|
||||
/** Si nous sommes en mode CLI, alors on fait en sorte de ne pas atteindre
|
||||
la limite des 25 mails par minute (ramené à 100 / minute)
|
||||
la limite des 25 mails par minute (ramené à 100 / minute)
|
||||
**/
|
||||
if (MODE_EXEC==MODE_CLI) usleep(500000);
|
||||
break;
|
||||
|
@ -3,11 +3,11 @@
|
||||
) o------------------------------------------------------------------------------o
|
||||
* | This is HTMLMimeMail5. It is dual licensed as GPL and a commercial license. |
|
||||
* | If you use the code commercially (or if you don't want to be restricted by |
|
||||
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
|
||||
* | the GPL license), you will need the commercial license. It's only £49 (GBP - |
|
||||
* | roughly $98 depending on the exchange rate) and helps me out a lot. Thanks. |
|
||||
* o------------------------------------------------------------------------------o
|
||||
*
|
||||
* © Copyright 2005 Richard Heyes
|
||||
* © Copyright 2005 Richard Heyes
|
||||
*/
|
||||
|
||||
define('SMTP_STATUS_NOT_CONNECTED', 1, true);
|
||||
|
@ -48,13 +48,13 @@ $res = $cl->Query ( $q, $index );
|
||||
$res = $cl->Query ( $findMe, $index );
|
||||
|
||||
if ($res===false) {
|
||||
debugLog('I',"Search Sphinx : Pas de réponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
debugLog('I',"Search Sphinx : Pas de réponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return array( 'results'=>false,
|
||||
'nbRet'=>0,
|
||||
'nbTot'=>0,
|
||||
'duration'=>$res[time]);//return false;
|
||||
|
||||
} else { // Le moteur est opérationel
|
||||
} else { // Le moteur est opérationel
|
||||
if ( $cl->GetLastWarning() ) {
|
||||
debugLog('I',"Search Sphinx : Warning pour $findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
print "WARNING: " . $cl->GetLastWarning() . "\n\n";
|
||||
@ -69,8 +69,8 @@ $res = $cl->Query ( $q, $index );
|
||||
// debugLog('I',"Search Sphinx dans $index ". print_r($tabFiltres, true));
|
||||
|
||||
$tabRet=array();
|
||||
if ( @is_array($res['matches'])) { // il y a des données à renvoyer
|
||||
if (substr($index,0,4)=='etab') { // Recherche par étab
|
||||
if ( @is_array($res['matches'])) { // il y a des données à renvoyer
|
||||
if (substr($index,0,4)=='etab') { // Recherche par étab
|
||||
foreach ( $res['matches'] as $doc => $docinfo ) { // On balaye chaque ligne
|
||||
$listeEtab=$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, ".
|
||||
|
@ -48,13 +48,15 @@ $res = $cl->Query ( $q, $index );
|
||||
$res = $cl->Query ( $findMe, $index );
|
||||
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug", print_r($res,true)) ;
|
||||
if ($res===false) {
|
||||
debugLog('I',"Search Sphinx : Pas de réponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
debugLog('I',"Search Sphinx : Pas de réponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return array( 'results'=>false,
|
||||
'nbRet'=>0,
|
||||
'nbTot'=>0,
|
||||
'error'=>$cl->GetLastError(),
|
||||
'warning'=>$cl->GetLastWarning(),
|
||||
'duration'=>$res[time]);//return false;
|
||||
|
||||
} else { // Le moteur est opérationel
|
||||
} else { // Le moteur est opérationel
|
||||
if ( $cl->GetLastWarning() ) {
|
||||
debugLog('I',"Search Sphinx : Warning pour $findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
print "WARNING: " . $cl->GetLastWarning() . "\n\n";
|
||||
@ -69,8 +71,8 @@ $res = $cl->Query ( $q, $index );
|
||||
// debugLog('I',"Search Sphinx dans $index ". print_r($tabFiltres, true));
|
||||
|
||||
$tabRet=array();
|
||||
if ( @is_array($res['matches'])) { // il y a des données à renvoyer
|
||||
if (substr($index,0,4)=='etab') { // Recherche par étab
|
||||
if ( @is_array($res['matches'])) { // il y a des données à renvoyer
|
||||
if (substr($index,0,4)=='etab') { // Recherche par étab
|
||||
foreach ( $res['matches'] as $doc => $docinfo ) { // On balaye chaque ligne
|
||||
$listeEtab=$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, ".
|
||||
@ -228,4 +230,94 @@ $res = $cl->Query ( $q, $index );
|
||||
'words'=>$res['words'],
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
<nafen>7020z<
|
||||
|
||||
*/
|
||||
function comptage($findMe, $tabFiltres=array(), $deb=0, $nbRep=20, $max=1000, $any=false, $fichierCsv=false) {
|
||||
$deb=$deb*1;
|
||||
$nbRep=$nbRep*1;
|
||||
$max=$max*1;
|
||||
$index='comptage';
|
||||
$iDb=new WDB();
|
||||
/*
|
||||
$cl = new SphinxClient ();
|
||||
$cl->SetServer ( $host, $port );
|
||||
$cl->SetWeights ( array ( 100, 1 ) );
|
||||
$cl->SetMatchMode ( $mode );
|
||||
if ( count($filtervals) ) $cl->SetFilter ( $filter, $filtervals );
|
||||
if ( $groupby ) $cl->SetGroupBy ( $groupby, SPH_GROUPBY_ATTR, $groupsort );
|
||||
if ( $sortby ) $cl->SetSortMode ( SPH_SORT_EXTENDED, $sortby );
|
||||
if ( $sortexpr ) $cl->SetSortMode ( SPH_SORT_EXPR, $sortexpr );
|
||||
if ( $distinct ) $cl->SetGroupDistinct ( $distinct );
|
||||
if ( $limit ) $cl->SetLimits ( 0, $limit, ( $limit>1000 ) ? $limit : 1000 );
|
||||
$res = $cl->Query ( $q, $index );
|
||||
*/
|
||||
$cl = new SphinxClient ();
|
||||
$cl->SetServer ('192.168.3.24', 3312);
|
||||
$cl->SetConnectTimeout(1);
|
||||
$cl->SetLimits ($deb, $nbRep, $max);
|
||||
// if (substr($index,0,4)=='etab')
|
||||
// $cl->SetSortMode(SPH_SORT_EXTENDED, 'rang DESC, actif DESC, siege DESC');//, nic DESC
|
||||
//$cl->SetWeights ( array ( 100, 1 ) );
|
||||
//$cl->SetMatchMode ( $any ? SPH_MATCH_ANY : SPH_MATCH_ALL );
|
||||
$cl->SetMatchMode (SPH_MATCH_EXTENDED);
|
||||
foreach ($tabFiltres as $nomFiltre => $valFiltre)
|
||||
$cl->SetFilter($nomFiltre, $valFiltre);
|
||||
/*8.4.3. SetFilterRange
|
||||
Prototype: function SetFilterRange ( $attribute, $min, $max, $exclude=false )
|
||||
Adds new integer range filter. */
|
||||
|
||||
$cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 );
|
||||
//$cl->SetArrayResult ( true );
|
||||
|
||||
$res = $cl->Query ( $findMe, $index );
|
||||
if ($res===false) {
|
||||
// debugLog('I',"Search Sphinx : Pas de réponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
return array( 'results'=>false,
|
||||
'nbRet'=>0,
|
||||
'nbTot'=>0,
|
||||
'error'=>$cl->GetLastError(),
|
||||
'warning'=>$cl->GetLastWarning(),
|
||||
'durationCpt'=>$res[time],
|
||||
'durationExp'=>0);//return false;);//return false;
|
||||
|
||||
} else { // Le moteur est opérationel
|
||||
$tdeb=microtime(1);
|
||||
if ( $cl->GetLastWarning() ) {
|
||||
//debugLog('I',"Search Sphinx : Warning pour $findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
print "WARNING: " . $cl->GetLastWarning() . "\n\n";
|
||||
}
|
||||
|
||||
$tabRet=array();
|
||||
if ( @is_array($res['matches'])) { // il y a des données à renvoyer
|
||||
$tabIdDoc=array();
|
||||
foreach ( $res['matches'] as $doc => $docinfo ) //{ // On balaye chaque ligne
|
||||
$tabIdDoc[]=$doc;
|
||||
$strDoc='('.implode(',',$tabIdDoc).')';
|
||||
$tabTmp=$iDb->select( 'etablissements_act',
|
||||
'id,ape_etab,ape_entrep,source,siren,nic,actif,siege,adr_cp,adr_dep,adr_com,tel,fax,cj,capital,age_entrep,age_etab,tca,tcaexp,teff_entrep,teff_etab,rang,dateCrea_etab,eff_entrep,eff_etab,nbEtab,bilType,bilAnnee,bilTca,bilCA,bilCAexp,bilRN',
|
||||
"id IN $strDoc", false, MYSQL_ASSOC);
|
||||
if ($fichierCsv) {
|
||||
$fp=fopen($fichierCsv, 'w');
|
||||
foreach ($tabTmp as $iTmp=>$tmp) {
|
||||
$tabRet[]=$tmp;
|
||||
fwrite($fp, implode("\t", $tmp).EOL);
|
||||
}
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
}
|
||||
return array( 'results'=>$tabRet,
|
||||
'nbRet'=>$res[total],
|
||||
'nbTot'=>$res[total_found],
|
||||
'durationCpt'=>$res[time],
|
||||
'durationExp'=>round(microtime(1)-$tdeb,3),
|
||||
'error'=>$cl->GetLastError(),
|
||||
'warning'=>$cl->GetLastWarning(),
|
||||
'words'=>$res['words'],
|
||||
);
|
||||
}
|
||||
|
||||
?>
|
@ -138,47 +138,47 @@ echo '-->';
|
||||
if ($_POST['submitted']) {
|
||||
print_r($_POST);
|
||||
|
||||
/* Actions à effectuer :
|
||||
/* Actions à effectuer :
|
||||
|
||||
// 1. Vérification de l'existance du NOM, Prénom et Adresse dans Annuaire (/30 points)
|
||||
1.1. Si NOM+Prénom à l'adresse ==> OK 30 points
|
||||
1.2. Si NOM sans prénom à l'adresse ==> OK 25 points
|
||||
1.3. Si quelqu'un dans annuaire à l'adresse 10 points
|
||||
// 1. Vérification de l'existance du NOM, Prénom et Adresse dans Annuaire (/30 points)
|
||||
1.1. Si NOM+Prénom à l'adresse ==> OK 30 points
|
||||
1.2. Si NOM sans prénom à l'adresse ==> OK 25 points
|
||||
1.3. Si quelqu'un dans annuaire à l'adresse 10 points
|
||||
1.4. Si pas d'adresse 0 point
|
||||
|
||||
// Si 1.2 ==> 2
|
||||
// Si 1.3 ==> 2 + 3
|
||||
// Si 1.4 ==> 2 + 3 + 4
|
||||
|
||||
// 2. Vérifier si le prénom existe dans la table des prénoms (/ 3 points)
|
||||
2.1. Si le prénom existe OK 2 points
|
||||
// 2. Vérifier si le prénom existe dans la table des prénoms (/ 3 points)
|
||||
2.1. Si le prénom existe OK 2 points
|
||||
2.2. Sinon valeur approchante 1 point
|
||||
2.3. Sinon ?????????? 0 point
|
||||
|
||||
// 3. Vérifier si le nom existe dans la table des noms (/ 3 points)
|
||||
// 3. Vérifier si le nom existe dans la table des noms (/ 3 points)
|
||||
1.1. Si le nom existe OK 2 points
|
||||
1.2. Sinon valeur approchante 1 point
|
||||
1.3. Sinon 0 point
|
||||
|
||||
// 4. Recherche de l'existance de l'adresse / ville (/ 5 points)
|
||||
2.1. Si adresse complète existe 5 points
|
||||
2.2. Si adresse sans n° 3 points
|
||||
2.1. Si adresse complète existe 5 points
|
||||
2.2. Si adresse sans n° 3 points
|
||||
2.3. Si approchant 2 points
|
||||
2.4. Si ville sans l'adresse 0 point
|
||||
|
||||
//10. Vérifier si le prénom est logique avec les l'age moyen des personnes portant ce prénom (/ 3 points)
|
||||
//10. Vérifier si le prénom est logique avec les l'age moyen des personnes portant ce prénom (/ 3 points)
|
||||
2.4.1. Si logique OK 2 points
|
||||
2.4.2. Si approchant 1 point
|
||||
2.4.3. Sinon 0 point
|
||||
|
||||
|
||||
3.3.1 Vérification dans le pages blanches
|
||||
3.3.1 Vérification dans le pages blanches
|
||||
|
||||
// 3. Si un téléphone est communiqué et qu'absence de liste rouge : (30 points)
|
||||
3.1. Vérifier la concordance NOM, Prénom, Adresse, Téléphonesi OK 30 point
|
||||
// 3. Si un téléphone est communiqué et qu'absence de liste rouge : (30 points)
|
||||
3.1. Vérifier la concordance NOM, Prénom, Adresse, Téléphonesi OK 30 point
|
||||
|
||||
Enregistrer chaque requête
|
||||
et les informations communqiuées par le client
|
||||
Enregistrer chaque requête
|
||||
et les informations communqiuées par le client
|
||||
*/
|
||||
|
||||
}
|
||||
|
@ -491,6 +491,73 @@ class WsEntreprise {
|
||||
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
/** Recherche d'entreprise par leur actionnaire
|
||||
**
|
||||
** @param string $nom Nom de l'actionnaire (obligatoire)
|
||||
** @param string $prenom Prénom de l'actionnaire
|
||||
** @param date $dateNaiss Date de naissance de la SSAA-MM-JJ, SSAA-MM ou SSAA
|
||||
** @param string $lieuNaiss Lieu de naissance (CP, Ville ou Pays)
|
||||
** @param integer $siren Siren de l'actionnaire
|
||||
** @param string $pays Pays de l'actionnaire
|
||||
** @param string $pctMin Niveau de détention Minimam de l'actionnaire
|
||||
** @param string $pctMax Niveau de détention Maximum de l'actionnaire
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param bool $pertinence Recherche orthographique stricte sur les noms et prénoms (si true)
|
||||
** @return Liste des entreprises trouvées
|
||||
**/
|
||||
function searchAct($nom, $prenom='', $dateNaiss='', $lieuNaiss='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) {
|
||||
debugLog('I',"Recherche Actionnaire de $nom, $prenom, $dateNaiss, $lieuNaiss (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$mLiens=new MLiens();
|
||||
$etabs=$mLiens->rechercheActionnaire($nom, $prenom, $dateNaiss, $lieuNaiss, $siren, $pays, $pctMin, $pctMax, $deb, $nbRep, $maxRep, $pertinence);
|
||||
|
||||
//$etabs=$this->iInsee->rechercheDir($nom, $prenom, /*$fonction=*/'', $dateNaiss, $lieuNaiss, $deb, $nbRep, $maxRep, $pertinence);
|
||||
|
||||
$tabRet2=array();
|
||||
foreach ($etabs['reponses'] as $etab)
|
||||
$tabRet2[]=array( 'id'=>$etab['id'],
|
||||
'Pertinence'=>$etab['Pertinence'],
|
||||
'Siret'=>$etab['Siret'],
|
||||
'Siege'=>$etab['Siege'],
|
||||
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
|
||||
'Nom2'=>prepareString($etab['Nom2']),
|
||||
'Sigle'=>prepareString($etab['Sigle']),
|
||||
'Enseigne'=>prepareString($etab['Enseigne']),
|
||||
'Adresse'=>prepareString($etab['Adresse']),
|
||||
'Adresse2'=>prepareString($etab['Adresse2']),
|
||||
'CP'=>$etab['CP'],
|
||||
'Ville'=>prepareString($etab['Ville']),
|
||||
'Tel'=>$etab['Tel'],
|
||||
'Fax'=>$etab['Fax'],
|
||||
'FJ'=>$etab['FJ'],
|
||||
'FJLib'=>prepareString($this->iInsee->getLibelleFJ($etab['FJ'])),
|
||||
'Siren'=>$etab['Siren'],
|
||||
'Nic'=>$etab['Nic'],
|
||||
'Actif'=>$etab['Actif'],
|
||||
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
||||
'NafEtabLib'=>prepareString($this->iInsee->getLibelleNaf($etab['NafEtab'])), // Etablissement
|
||||
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
||||
'NafEntLib'=>prepareString($this->iInsee->getLibelleNaf($etab['NafEnt'])),
|
||||
|
||||
// Dirigeant
|
||||
'DirRs'=>prepareString($etab['DirRs']),
|
||||
'DirNom'=>prepareString($etab['DirNom']),
|
||||
'DirPrenom'=>prepareString($etab['DirPrenom']),
|
||||
'DirNomUsage'=>prepareString($etab['DirNomUsage']),
|
||||
'DirDateEffet'=>$etab['DirDateEffet'],
|
||||
'DirFonction'=>prepareString($etab['DirFonction']),
|
||||
'DirDepart'=>$etab['DirDepart'],
|
||||
);
|
||||
$tabRet=$etabs;
|
||||
$tabRet['reponses']=$tabRet2;
|
||||
|
||||
if ($tabRet['nbReponses']==0) {
|
||||
debugLog('W', "Aucun résultat pour cette recherche !", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
return array('error'=>array('errnum'=>100, 'errmsg'=>'Pas de reponse'), 'results'=>$tabRet);
|
||||
}
|
||||
else return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
|
||||
/** Recherche d'entreprise ou d'établissement par leur identifiant SIREN ou SIRET
|
||||
**
|
||||
@ -921,11 +988,16 @@ public function rechercheHisto($recherche, $annee='', $typeBod='', $deb=0, $nbRe
|
||||
'Siret' =>$entrep['Siret'],
|
||||
'SiretSiege' =>$entrep['SiretSiege'],
|
||||
'Siege' =>$entrep['Siege'],
|
||||
'AncienSiege' =>$entrep['AncienSiege'],
|
||||
'AncienSiegeDateFin'=>$entrep['AncienSiegeDateFin'],
|
||||
'TribunalCode' =>prepareString($entrep['Tribunal']),
|
||||
'TribunalLib' =>prepareString($entrep['TribunalLib']),
|
||||
//'NumGreffe' =>$entrep['numGreffe'], // Ajouté le 4 08 2009
|
||||
'NumRC' =>$entrep['numRC'], // Ajouté le 4 08 2009
|
||||
'Actif' =>$entrep['Actif'],
|
||||
'ActifEco' =>$entrep['ActifEco'], // Etab éco actif, ajout le 28/04/2011
|
||||
'ActifEcoDate' =>$entrep['ActifEcoDate'], // Date si éco inactif et jur actif
|
||||
'ActifEcoType' =>$entrep['ActifEcoType'], // vide ou NPAI ou PFER ou ECOF
|
||||
'EntActiveRCS' =>$entrep['EntActiveRCS'],
|
||||
'AutreId' =>$entrep['AutreId'],
|
||||
'Source' =>$entrep['Source'],
|
||||
@ -1050,6 +1122,7 @@ public function rechercheHisto($recherche, $annee='', $typeBod='', $deb=0, $nbRe
|
||||
'derCoursDate'=>$bourse['date'],
|
||||
'derCoursCloture'=>$bourse['close']),
|
||||
'AutreSiren' =>$entrep['AutreSiren'],
|
||||
'AutreSiret' =>$entrep['AutreSiret'],
|
||||
'DateMajINSEE' =>$entrep['DateMajINSEE'],
|
||||
'DateMajRCS' =>$entrep['DateMajRCS'],
|
||||
'DateMajBILAN' =>$entrep['bilanDateMaj'],
|
||||
@ -1501,8 +1574,9 @@ public function rechercheHisto($recherche, $annee='', $typeBod='', $deb=0, $nbRe
|
||||
}
|
||||
|
||||
$mBil=new MBilans($siren);
|
||||
// $tabBilans=$mBil->listeBilans(true);
|
||||
$tabBilans=$mBil->listeBilans(false);
|
||||
//if (ENV=='PRD')
|
||||
$tabBilans=$mBil->listeBilans(true);
|
||||
//else $tabBilans=$mBil->listeBilans(false);
|
||||
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "WsEntreprise::getListeBilans sur $siren", print_r($tabBilans, true));
|
||||
|
||||
/*print_r($rncs->getIdentite($siren));
|
||||
@ -1641,7 +1715,7 @@ public function rechercheHisto($recherche, $annee='', $typeBod='', $deb=0, $nbRe
|
||||
$mBil=new MBilans($siren);
|
||||
$tabBilan=$mBil->getBilan($millesime, $typeBilan, $ref, true);
|
||||
//global $tabInfoUser;
|
||||
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Bilan Siren=$siren, Millesime=$millesime, Type=$typeBilan, Ref=$ref", print_r($tabBilan,true).EOL.print_r($tabInfoUser,true)) ;
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Bilan Siren=$siren, Millesime=$millesime, Type=$typeBilan, Ref=$ref", print_r($tabBilan,true)) ;
|
||||
|
||||
/*print_r($rncs->getIdentite($siren));
|
||||
echo 'Dernier bilan S (simplifié) : '.$lastBilS.'<br/>';
|
||||
@ -2534,6 +2608,7 @@ public function rechercheHisto($recherche, $annee='', $typeBod='', $deb=0, $nbRe
|
||||
'mail'=>trim($tabIdentite['mail']),
|
||||
'activite'=>stripslashes(trim($tabIdentite['activite'])),
|
||||
'sirenDoublon'=>substr(str_replace(' ','',strtr($tabIdentite['sirenDoublon'], '"\'./- ,\*#()',' ')),0,9),
|
||||
'waldec'=>trim(str_replace(' ','',strtr($tabIdentite['waldec'], '"\'./- ,\*#()',' '))),
|
||||
);
|
||||
/** @todo non traitées : [capital_mt] => 335400, [capital_dev] => EUR **/
|
||||
if (!$iDb->update('infos_entrep', $tabUpdate, "siren='$siren'"))
|
||||
@ -2548,12 +2623,19 @@ public function rechercheHisto($recherche, $annee='', $typeBod='', $deb=0, $nbRe
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", "Erreur lors de l'inscription à la liste des oppositions de la sphère commerciale INSEE pour $siren au mois de ".$tabIdentite['moisOppositionInsee']." : ".EOL.print_r($tabIdentite, true).EOL.$iDb2->getLastError());
|
||||
}
|
||||
|
||||
if (isset($tabIdentite['domiciliataire']) && $tabIdentite['domiciliataire']=='oui' && $siren>1000) {
|
||||
if (!$iDb->query(
|
||||
"INSERT IGNORE INTO jo.tabAdrDom (siren,nic,siege, etActif, nom, sigle, enseigne, adrNum, adrBtq, adrTypVoie, adrLibVoie, ville, cp, depComEt, adrComp, cj, apen,apet, dateInsert)
|
||||
SELECT siren, nic, siege, actif AS etActif, raisonSociale AS nom, sigle, enseigne, adr_num as adrNum, adr_btq AS adrBtq, adr_typeVoie AS adrTypVoie, adr_libVoie AS adrLibVoie, adr_ville AS ville, adr_cp AS cp, CONCAT(adr_dep,adr_com) AS depComEt, adr_comp AS adrComp, cj, ape_entrep AS apen, ape_etab AS apet, NOW() as dateInsert
|
||||
FROM jo.etablissements WHERE siren=$siren;", false))
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", "Erreur lors de l'inscription comme entreprise de domiciliation : ".EOL.print_r($tabIdentite, true).EOL.$iDb->getLastError());
|
||||
if (isset($tabIdentite['domiciliataire']) && $siren>1000) {
|
||||
if ($tabIdentite['domiciliataire']=='oui' || $tabIdentite['domiciliataire']=='non') {
|
||||
// L'entreprise et ces établissements seront mis à jour automatiquement ce soir
|
||||
$iDb->query("INSERT IGNORE INTO jo.tabAdrDom (siren,nic,siege, etActif, nom, sigle, enseigne, adrNum, adrBtq, adrTypVoie, adrLibVoie, ville, cp, depComEt, adrComp, cj, apen,apet, dateInsert)
|
||||
SELECT siren, nic, siege, actif AS etActif, raisonSociale AS nom, sigle, enseigne, adr_num as adrNum, adr_btq AS adrBtq, adr_typeVoie AS adrTypVoie, adr_libVoie AS adrLibVoie, adr_ville AS ville, adr_cp AS cp, CONCAT(adr_dep,adr_com) AS depComEt, adr_comp AS adrComp, cj, ape_entrep AS apen, ape_etab AS apet, DATE(NOW()) as dateInsert
|
||||
FROM jo.etablissements WHERE siren=$siren;", false);
|
||||
}
|
||||
// Si demande de suppression, on force l'indicateur ""
|
||||
if ($tabIdentite['domiciliataire']=='non') {
|
||||
$tabUpdate=array('pasEntrepDom'=>1);
|
||||
if (!$iDb->update('tabAdrDom', $tabUpdate, "siren=$siren"))
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ERREUR setInfosEntrep pour $siren", "Erreur lors de la suppression du marqueur de domiciliation pour $siren :".EOL.print_r($tabUpdate, true).EOL.$iDb->getLastError());
|
||||
}
|
||||
}
|
||||
|
||||
/** Insertion des scores
|
||||
@ -4024,7 +4106,7 @@ print_r($tabUpdate,true).EOL
|
||||
'dateCommande'=> DATETIME,
|
||||
// 'idClient'=> $tabInfoUser['idClient'],
|
||||
);
|
||||
debugLog('I',"commande d'enquete sur $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
debugLog('I',"Intersud, début commande sur $siren",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$messageInfo=print_r($infoEnq, 1).EOL.print_r($infoDemande,1).EOL;
|
||||
|
||||
$idClient=$tabInfoUser['idClient'];
|
||||
@ -4038,7 +4120,7 @@ print_r($tabUpdate,true).EOL
|
||||
$strInfoCommande.="Profil du demandeur : ".trim($infoDemande['Profil'].' '.$infoDemande['ProfilAutre']).EOL;
|
||||
$typeEnqLog='enqueteDemNF';
|
||||
|
||||
if ($login=='' || $login=='') {
|
||||
if ($login=='' || $pass=='') {
|
||||
/** Il ne s'agit pas d'un client final, on anonymise la commande **/
|
||||
$login='YLENA'; // Demandes en test
|
||||
$pass='WYLFE';
|
||||
@ -4050,6 +4132,8 @@ print_r($tabUpdate,true).EOL
|
||||
*/
|
||||
}
|
||||
|
||||
/** Connexion à l'Extranet Intersud
|
||||
**/
|
||||
$url='http://www.intersud.fr/espace_client/espace_client.php';
|
||||
$cookie=$referer='';
|
||||
$tabPost=array('login'=>$login,
|
||||
@ -4057,15 +4141,39 @@ print_r($tabUpdate,true).EOL
|
||||
);
|
||||
$tdeb=microtime(true);
|
||||
$page=getUrl($url, $cookie, $tabPost, $referer, false, '', '', 7);
|
||||
if ($page['code']<>200) {
|
||||
$tabRet=array();
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ATTENTION : Commande d'enquete sur $siren", "Connexion impossible à la plateforme Intersud".EOL.$strInfoCommande);
|
||||
// wsLog($typeEnqLog, $siren, 'i'.$ret.'-'.DATETIME);
|
||||
return array('error'=>array('errnum'=>4563456, 'errmsg'=>'Connexion impossible à la plateforme d\'enquetes'), 'results'=>$tabRet);
|
||||
}
|
||||
$tfin=microtime(true);
|
||||
$duree=$tfin-$tdeb;
|
||||
$referer=$url;
|
||||
$body=$page['body'];
|
||||
$cookie=$page['header']['Set-Cookie'];
|
||||
$intersudNomPrenom=$intersudRaisonSociale='';
|
||||
if (preg_match('/<td colspan="5" class="txt_blanc" background="images_ec\/1erpageespaceclient_14\.jpg" width="274" height="22">(.*)<\/td>/Uis',$body,$matches))
|
||||
$intersudNomPrenom=trim($matches[1]);
|
||||
if (preg_match('/<td class="txt_blanc" colspan="7" rowspan="2" valign="middle" background="images_ec\/1erpageespaceclient_17\.jpg">(.*)<\/td>/Uis',$body,$matches))
|
||||
$intersudRaisonSociale=trim($matches[1]);
|
||||
debugLog('I',"Intersud, connexion via $login pour $intersudRaisonSociale ($intersudNomPrenom, cookie=$cookie)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
/* $fp=@fopen("/var/www/html/ws2/intersud.log", "a");
|
||||
@fwrite($fp, EOL.DATETIME.EOL.print_r($page,true).'========================================================================================================='.EOL.EOL);
|
||||
@fclose($fp);
|
||||
die();
|
||||
*/
|
||||
/** Page formulaire de demande d'enquête
|
||||
**/
|
||||
$url='http://intersud.fr/espace_client/demande_enquete.php';
|
||||
$tdeb=microtime(true);
|
||||
$page=getUrl($url, $cookie, '', $referer, false, '', '', 7);
|
||||
if ($page['code']<>200) {
|
||||
$tabRet=array();
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ATTENTION : Commande d'enquete sur $siren", "Connexion impossible au formulaire d'enquête Intersud".EOL.$strInfoCommande);
|
||||
return array('error'=>array('errnum'=>456345, 'errmsg'=>'Connexion impossible à la plateforme d\'enquetes 2'), 'results'=>$tabRet);
|
||||
}
|
||||
$tfin=microtime(true);
|
||||
$duree+=$tfin-$tdeb;
|
||||
$referer=$url;
|
||||
@ -4087,12 +4195,18 @@ print_r($tabUpdate,true).EOL
|
||||
$tabInterSud[$field]=$tmp[0];
|
||||
}
|
||||
}
|
||||
$ref_exp=$tabInterSud['ref_exp'];
|
||||
$email_exp=$tabInterSud['email_exp'];
|
||||
$tel_exp=$tabInterSud['tel_exp'];
|
||||
debugLog('I',"Intersud, formulaire enquête ref $ref_exp, $email_exp, $tel_exp",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
$fp=@fopen("/var/www/html/ws2/intersud.log", "a");
|
||||
@fwrite($fp, print_r($matches,true));
|
||||
@fwrite($fp, print_r($tabInterSud,true));
|
||||
@fclose($fp);
|
||||
|
||||
|
||||
/** Insertion de la commande en base
|
||||
**/
|
||||
$ret=$iDbCrm->insert('commandes', $tabInsert, true);
|
||||
$comment="Référence de la commande chez Scores et Décisions : i$ret - ".DATETIME."
|
||||
Date et heure de la commande : ".date('d/m/Y - H:i')."
|
||||
@ -4137,6 +4251,7 @@ if ($infoEnq['LitigeChoix']<>'non')
|
||||
|
||||
), true);
|
||||
|
||||
/** Remplissage du formulaire d'enquête pour soumission à Intersud **/
|
||||
$tabIdentite=$this->iInsee->getIdentiteLight($siren);
|
||||
$tabPost=array( 'soc'=>$tabIdentite['Nom'],
|
||||
'cible_enk'=>9, // 9
|
||||
@ -4165,11 +4280,16 @@ if ($infoEnq['LitigeChoix']<>'non')
|
||||
'email_exp'=>$tabInterSud['email_exp'],
|
||||
'cred'=>'',
|
||||
'comment'=>urlencode($comment),
|
||||
'val_ret'=>1,
|
||||
'val_ret'=>$tabInterSud['val_ret'],
|
||||
);
|
||||
$url='http://intersud.fr/espace_client/demande_enquete.php';
|
||||
$tdeb=microtime(true);
|
||||
$page=getUrl($url, $cookie, $tabPost, $referer, false, '', '', 7);
|
||||
if ($page['code']<>200) {
|
||||
$tabRet=array();
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "ATTENTION : Commande d'enquete sur $siren", "Validation impossible du formulaire d'enquête Intersud".EOL.$strInfoCommande);
|
||||
return array('error'=>array('errnum'=>456345, 'errmsg'=>'Connexion impossible à la plateforme d\'enquetes 3'), 'results'=>$tabRet);
|
||||
}
|
||||
$tfin=microtime(true);
|
||||
$duree+=$tfin-$tdeb;
|
||||
$referer=$url;
|
||||
@ -4181,9 +4301,19 @@ if ($infoEnq['LitigeChoix']<>'non')
|
||||
'refCmde'=> 'i'.$ret,
|
||||
);
|
||||
//$strInfoCommande $mail
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Commande d'enquete sur $siren", $comment.EOL.EOL.'---------------------------------'.EOL.$messageInfo);
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Commande d'enquete sur $siren", $comment.EOL.EOL.'---------------------------------'.EOL.$messageInfo.EOL.EOL.'---------------------------------'.EOL.$body);
|
||||
@sendMail('production@scores-decisions.com', $mail, "Votre demande d'enquete sur ".$tabIdentite['Nom']." ($siren)", "Votre demande d'enquête sur la société ".$tabIdentite['Nom']." a été prise en compte sous la référence i$ret - ".DATETIME);
|
||||
wsLog($typeEnqLog, $siren, 'i'.$ret.'-'.DATETIME);
|
||||
|
||||
/** Gestion de la déconnexion **/
|
||||
$url='http://intersud.fr/espace_client/index.php?code_ret=9';
|
||||
$tdeb=microtime(true);
|
||||
$page=getUrl($url, $cookie, '', $referer, false, '', '', 7);
|
||||
$tfin=microtime(true);
|
||||
$duree+=$tfin-$tdeb;
|
||||
|
||||
$ret=$iDbCrm->update('commandes', array('dureeCommande'=>round($duree,3)), "idCommande=$ret");
|
||||
|
||||
return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabRet);
|
||||
}
|
||||
/** @nodoc
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -31,6 +31,9 @@ $tabEvenInsee=array(
|
||||
// Evènements Crées par diff3+4
|
||||
'iMPF'=>'Etablissement présumé fermé (formalités de création faites par le repreneur)',
|
||||
'iMNP'=>'Etablissement présumé fermé (retour de courrier en NPAI)',
|
||||
// Décret n°2010-1042 du 01/09/2010 relatif à l'inscription au registre du commerce et des sociétés et au répertoire national mentionné à l'article R. 123-220 du code de commerce
|
||||
// Codification provisoire à changer dans l'attente de l'INSEE
|
||||
'iRCS'=>'Suppression du SIREN suite au refus d\'inscription au Registre du Commerce et des Sociétés',
|
||||
// Nouveaux évènements Sirene3 de la quotidienne Insee
|
||||
'i110'=>'Création de l\'entreprise',
|
||||
'i120'=>'Réactivation de l\'entreprise',
|
||||
@ -392,7 +395,7 @@ class MInsee {
|
||||
private static $tabOrigine=array(
|
||||
'0'=>'Non renseigné',
|
||||
'1'=>'Création pure',
|
||||
'2'=>'Réinstallation après transfert',
|
||||
'2'=>'Création suite à déménagement', // Création S&D du 20/04/2011 ancien 'Réinstallation après transfert'
|
||||
'3'=>'Achat',
|
||||
'4'=>'Apport',
|
||||
'5'=>'Reprise au conjoint ou apport reçu',
|
||||
@ -405,7 +408,6 @@ class MInsee {
|
||||
'C'=>'Transfert de propriété d\'une exploitation agricole',
|
||||
'D'=>'Apport d\'exploitation(s) agricole(s) individuelle(s)',
|
||||
'E'=>'Reprise totale ou partielle d\'exploitation individuelle',
|
||||
'NR'=>'Non renseignée',
|
||||
);
|
||||
|
||||
private static $tabEven=array( 'i110'=>'Création d\'une entreprise',
|
||||
@ -1843,13 +1845,15 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
|
||||
/** Informations INSEE
|
||||
**/
|
||||
if ($siren>100) {
|
||||
$insee=$this->iDbInsee->select('identite', 'ACTIF%10 AS ACTIF, NOM, NOM2, SIGLE, ENSEIGNE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, PAYS, DCREN, SIEGE, AUXILT, SAISONAT, CJ, CIVILITE, NBETAB, APE_ENT, APE_ETAB, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, DCRET, TEFF_ENT, ADR_DEP, ADR_COM, TCA, TCAEXP, EFF_ET, TEFF_ET, CODEVOIE, DATE_MAJ, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, MONOREG, REGIMP, MONOACT, DEFEN, DEFET, IDENTITE_PRE',
|
||||
$insee=$this->iDbInsee->select('identite', 'ACTIF%10 AS ACTIF, actifEco%10 AS actifEco, NOM, NOM2, SIGLE, ENSEIGNE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, PAYS, DCREN, SIEGE, AUXILT, SAISONAT, CJ, CIVILITE, NBETAB, APE_ENT, APE_ETAB, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, DCRET, TEFF_ENT, ADR_DEP, ADR_COM, TCA, TCAEXP, EFF_ET, TEFF_ET, CODEVOIE, DATE_MAJ, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, MONOREG, REGIMP, MONOACT, DEFEN, DEFET, IDENTITE_PRE',
|
||||
"SIREN=$siren $strNic ORDER BY SIEGE DESC, ACTIF DESC LIMIT 0,1",false,MYSQL_ASSOC);
|
||||
if (count($insee)>0) {
|
||||
$tabInsee=$insee[0];
|
||||
$tabNotice=$this->getInfosNotice($siren, $nic);
|
||||
$tabInsee['TCA_AN']=$tabNotice['insEAEANT'];
|
||||
$tabInsee['RECME']=$tabNotice['insRECME'];
|
||||
// On force l'indicateur "actifEco" à 0 si l'établissement est juridiquement inactif
|
||||
if ($tabInsee['ACTIF']*1==0) $tabInsee['actifEco']=0;
|
||||
} else {
|
||||
// Siren absent de l'Insee
|
||||
$tabInsee=array(
|
||||
@ -2076,6 +2080,24 @@ public function rechercheDirOld($nom, $prenom='', $fonction='', $dateNaiss='', $
|
||||
}
|
||||
$timer['typeExploitation']=microtime(true);
|
||||
|
||||
/** Recherche de prédécesseur ou successeur
|
||||
**/
|
||||
global $tabInfoUser;
|
||||
$tabAssoc=$this->getSiretAssoc($siren, $nic);
|
||||
if (count($tabAssoc)>0) {
|
||||
if (isset($tabAssoc['pre'])) {
|
||||
// Il y a un prédécesseur
|
||||
if ($tabInsee['ORIGINE']*1==0 ||
|
||||
$tabInsee['ORIGINE']*1==1 ||
|
||||
$tabInsee['ORIGINE']*1==9 ||
|
||||
$tabInsee['ORIGINE']=='NR')
|
||||
$tabInsee['ORIGINE']=2; // Transfert
|
||||
}
|
||||
}
|
||||
$timer['siretPrecSuivant']=microtime(true);
|
||||
|
||||
/** Code Pays
|
||||
**/
|
||||
$codePaysIso2='FR';
|
||||
if ($tabInsee['ADR_DEP']>98) {
|
||||
$codePaysInsee=$tabInsee['ADR_COM'];
|
||||
@ -2115,16 +2137,63 @@ print_r($tabTmp, true));
|
||||
'libIris'=>$ret[0]['LIB_IRIS'],
|
||||
'typIris'=>$tabTypeIris[$ret[0]['TYP_IRIS']],
|
||||
*/
|
||||
// Est-ce un ancien établissement siège ?
|
||||
$ancienSiege=false;
|
||||
$dateFinSiege=0;
|
||||
if ($etab['siege']==0 || ($etab['siege']==1 && $tabInsee['ACTIF']==0)) {
|
||||
$dateFinSiege=$this->isAncienSiege($siren,$nic);
|
||||
if ($dateFinSiege>19000101) $ancienSiege=true;
|
||||
}
|
||||
$timer['ancienSiege']=microtime(true);
|
||||
|
||||
if ($tabInsee['ACTIF']*1==1 && $tabInsee['actifEco']*1==0) {
|
||||
/** L'établissement est actif juridiquement à l'INSEE mais sans activité économique
|
||||
**/
|
||||
$tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE',
|
||||
"insSIREN=$siren AND insEVE IN ('OD','TD','MPF','MNP','420','425','620','621','650') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
|
||||
if (count($tabTmp)>0) {
|
||||
$tabModif=$tabTmp[0];
|
||||
switch(''.$tabModif['insEVE']) {
|
||||
case 'OD':
|
||||
case 'TD':
|
||||
case '420': // Absence d'activité de l'entreprise (cessation économique de l.entreprise)
|
||||
case '425': // Absence d'activité d'une entreprise suite à une mise à jour au répertoire //
|
||||
case '620':
|
||||
case '621':
|
||||
case '650':
|
||||
// Fermé économiquement
|
||||
$tabInsee['actifEcoType']='ECOF';
|
||||
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
|
||||
break;
|
||||
case 'MPF': // Présumé Fermé
|
||||
$tabInsee['actifEcoType']='PFER';
|
||||
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
|
||||
break;
|
||||
case 'MNP': // NPAI
|
||||
$tabInsee['actifEcoType']='NPAI';
|
||||
$tabInsee['actifEcoDate']=$tabModif['insDATEVE'];
|
||||
break;
|
||||
default:
|
||||
$tabInsee['actifEco']=1;
|
||||
$tabInsee['actifEcoDate']='';
|
||||
$tabInsee['actifEcoType']='';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tabRet=array( 'id'=>$etab['id'],
|
||||
'Siret'=>$etab['siret'],
|
||||
'SiretSiege'=>$siretSiege,
|
||||
'AncienSiege'=>$ancienSiege,
|
||||
'AncienSiegeDateFin'=>$dateFinSiege,
|
||||
'Siege'=>$etab['siege'],
|
||||
'Tribunal'=>$etab['triCode'],
|
||||
'Nom'=>$nom,
|
||||
'Nom'=>$nom, //EIRL
|
||||
|
||||
'Nom2'=>$nom2,
|
||||
'Sigle'=>$etab['sigle'],
|
||||
'Enseigne'=>$etab['enseigne'],
|
||||
'Enseigne'=>$etab['enseigne'], //EIRL
|
||||
'Adresse'=>trim(preg_replace('/ +/', ' ', trim( $etab['adr_num'] .' '. $etab['adr_btq'] .' '.
|
||||
$etab['adr_typeVoie'] .' '. $etab['adr_libVoie']))),
|
||||
'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])),
|
||||
@ -2141,8 +2210,8 @@ print_r($tabTmp, true));
|
||||
'NbEtab'=>$nbEtab,
|
||||
'Tel'=>$tel,
|
||||
'Fax'=>$fax,
|
||||
'Web'=>$tab['web'], // CofaceRating
|
||||
'Mail'=>$tab['mail'], // CofaceRating
|
||||
'Web'=>$tab['web'],
|
||||
'Mail'=>$tab['mail'],
|
||||
|
||||
'GeoLat'=>$tab['latitude'],
|
||||
'GeoLon'=>$tab['longitude'],
|
||||
@ -2156,7 +2225,10 @@ print_r($tabTmp, true));
|
||||
'RECME'=>$tabInsee['RECME'],
|
||||
'Siren'=>$etab['siren'],
|
||||
'Nic'=>$etab['nic'],
|
||||
'Actif'=>$tabInsee['ACTIF'],
|
||||
'Actif'=>$tabInsee['ACTIF'], // Etablissement juridiquement ACTIF
|
||||
'ActifEco'=>$tabInsee['actifEco'], // Etablissement économiquement ACTIF
|
||||
'ActifEcoDate'=>$tabInsee['actifEcoDate'], // Etablissement économiquement Inactif depuis
|
||||
'ActifEcoType'=>$tabInsee['actifEcoType'], // Type d'inactivité éco ECOF, NPAI, PFER ou vide
|
||||
'NafEtab'=>$tabInsee['APE_ETAB'],
|
||||
'NafEnt'=>$tabInsee['APE_ENT'],
|
||||
'NaceEtab'=>$this->getCodeNace($tabInsee['APE_ETAB']),
|
||||
@ -2197,7 +2269,7 @@ print_r($tabTmp, true));
|
||||
'AnneeTCA'=>$tabInsee['TCA_AN'],
|
||||
|
||||
'dir1Titre'=>self::$tabFct[$tabInsee['DIR_FCT']],
|
||||
'dir1NomPrenom'=>$tabInsee['DIR_IDEN'],
|
||||
'dir1NomPrenom'=>preg_replace('/^EIRL\s/','',$tabInsee['DIR_IDEN']),
|
||||
'Rivoli'=>substr($tabInsee['CODEVOIE'],0,4).' '.substr($tabInsee['CODEVOIE'],-1),
|
||||
'InfosIris'=>$tabIris,
|
||||
'NatureActivite'=>$tabInsee['ACTIVNAT'], // Nature de l'activité
|
||||
@ -2219,6 +2291,7 @@ print_r($tabTmp, true));
|
||||
'DateMajINSEE'=>str_replace('--','',WDate::dateT('Ymd','Y-m-d',$tabInsee['DATE_MAJ'])),
|
||||
'APRM'=>$tabInsee['APRM'],
|
||||
'APRM_Lib'=>$this->getLibelleNafa($tabInsee['APRM']),
|
||||
'AutreSiret'=>$tabAssoc,
|
||||
// MODET,
|
||||
);
|
||||
|
||||
@ -2661,7 +2734,7 @@ print_r($tmp, true));
|
||||
|
||||
// Par défaut, la Forme juridique qui fait foie est celle de l'INPI
|
||||
$fjInpi=$entrep['cj']*1;
|
||||
if ($tabRet['FJ']*1<>$fjInpi) {
|
||||
if ($tabRet['FJ']*1<>$fjInpi && $fjInpi>0) {
|
||||
$tabRet['FJ2'] = $tabRet['FJ'];
|
||||
$tabRet['FJ2_Lib'] = $tabRet['FJ_lib'];
|
||||
$tabRet['FJ'] = $fjInpi;
|
||||
@ -2696,11 +2769,15 @@ print_r($tmp, true));
|
||||
'id, siege, actif, enseigne, nomCommercial,
|
||||
adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie,
|
||||
cp, commune, adrComp, adresse1, adresse2, adresse3,
|
||||
naf, dateFermeture, flux, dateInsert, dateUpdate',
|
||||
naf, dateFermeture, flux, dateInsert, DATE(dateUpdate) AS jourUpdate',
|
||||
"siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
|
||||
$entrep=$rep[0];
|
||||
if (isset($entrep['id'])) {
|
||||
$tabRet['EtabActifRCS']=0;
|
||||
if ($entrep['jourUpdate']<>'0000-00-00' &&
|
||||
str_replace('-','',$entrep['jourUpdate'])*1>str_replace('-','',$tabRet['DateMajRCS']))
|
||||
$tabRet['DateMajRCS']=$entrep['jourUpdate'];
|
||||
|
||||
if ($entrep['actif']*1==1) $tabRet['EtabActifRCS']=1; // On signal que l'établissement est actif au RCS
|
||||
$tabRet['NomCommercial']=$entrep['nomCommercial'];
|
||||
$tabRet['enseigneLong']=$entrep['enseigne'];
|
||||
@ -2721,7 +2798,7 @@ print_r($tmp, true));
|
||||
}
|
||||
}
|
||||
$timer['infosRNCS']=microtime(true);
|
||||
} else {
|
||||
} elseif ($siren>1000) {
|
||||
/**
|
||||
** Recherche au RM
|
||||
**/
|
||||
@ -2805,7 +2882,11 @@ print_r($tmp, true));
|
||||
($tabInsee['CJ']>=4100 && $tabInsee['CJ']<=4199) ||
|
||||
($tabInsee['CJ']>=5100 && $tabInsee['CJ']<=5899) ||
|
||||
($tabInsee['CJ']>=6100 && $tabInsee['CJ']<=6599) ||
|
||||
$tabInsee['CJ']==9900 ) &&
|
||||
$tabInsee['CJ']==9900 ||
|
||||
preg_match('/EIRL/', $nom) || preg_match('/EIRL/', $nom2) ||
|
||||
preg_match('/EIRL/', $tabRet['Sigle']) || preg_match('/EIRL/', $tabRet['Enseigne']) ||
|
||||
preg_match('/EIRL/', $tabRet['Adresse']) || preg_match('/EIRL/', $tabRet['Adresse2'])
|
||||
) &&
|
||||
( $tabInsee['CJ']==1700 || // Agents commerciaux (uniquement au Greffes RSAC)
|
||||
$tabRet['numRC']=='' || // Numéro de RCS absent = Anomalie (<à3%)
|
||||
$tabRet['Tribunal']=='' || // Tribunal absent = anomalie
|
||||
@ -3099,7 +3180,6 @@ print_r($tmp, true));
|
||||
$duree=round($time-$timeDeb,3);
|
||||
$strTime.="---------------------
|
||||
TOTAL : $duree secondes\n";
|
||||
global $tabInfoUser;
|
||||
|
||||
if(ENV<>'PRD' && $tabInfoUser['login']=='ylenaour')
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Identite sur $siren : Durées ".ENV, $strTime.EOL.print_r($tabRet,true));
|
||||
@ -3145,6 +3225,13 @@ TOTAL : $duree secondes\n";
|
||||
"b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC, d.fonction DESC", true, MYSQL_ASSOC);
|
||||
if (count($bodacc)>0) {
|
||||
foreach ($bodacc as $k=>$ann) {
|
||||
/* if (!$histo && (
|
||||
$ann['fonction']<>300 && // Commissaire aux comptes titulaire
|
||||
$ann['fonction']<>301 && // Co-commissaire aux comptes suppléant
|
||||
$ann['fonction']<>302 && // Co-commissaire aux comptes titulaire
|
||||
$ann['fonction']<>303 && // Commissaire aux comptes suppléant
|
||||
$ann['fonction']<>304) ) // Commissaire aux comptes
|
||||
continue;*/
|
||||
$tabRet[]=array( 'Fonction' => $ann['fonction'],
|
||||
'Titre' => $ann['libelle'],
|
||||
'Societe' => $ann['rs'],
|
||||
@ -3263,6 +3350,30 @@ TOTAL : $duree secondes\n";
|
||||
}
|
||||
}
|
||||
|
||||
/** Recherche de CAC si liste des dirigeants actifs **/
|
||||
if (!$histo) {
|
||||
$bodacc=$this->iDb->select(
|
||||
'bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f',
|
||||
'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle',
|
||||
"b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct AND d.fonction BETWEEN 300 AND 304 GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC, d.fonction DESC", true, MYSQL_ASSOC);
|
||||
if (count($bodacc)>0) {
|
||||
foreach ($bodacc as $k=>$ann) {
|
||||
$tabRet[]=array('Fonction' => $ann['fonction'],
|
||||
'Titre' => $ann['libelle'],
|
||||
'Societe' => $ann['rs'],
|
||||
'Nom' => trim(strtr($ann['nom'], array( "Modification d'"=>'',
|
||||
"Modification de"=>'',
|
||||
"Nomination d'un"=>'',
|
||||
))),
|
||||
'Prenom' => $ann['prenom'],
|
||||
'Ancien' => $ann['depart'],
|
||||
'DateFct' => $ann['dateEffet'],
|
||||
);
|
||||
if ($k>1) break; // On s'arrête à 2 CAC (pb des co-cac non gérés)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count($tabRet)==0) {
|
||||
$dirs=$this->iDb->select(
|
||||
'rncs_dirigeants/* d, bodacc_fonctions f*/',
|
||||
@ -3990,6 +4101,27 @@ TOTAL : $duree secondes\n";
|
||||
$tabRet=array();
|
||||
}
|
||||
}
|
||||
} elseif ($rubrique=='D' && count($tabRet)>0) {
|
||||
$tabJugements=array();
|
||||
foreach ($tabRet as $i=>$ann) {
|
||||
$tabJugements[$ann['DateParution']]=$ann['evenements'][0]['CodeEven'];
|
||||
}
|
||||
// Tableau ante-chronologique des dates de jugement ==> code jugement
|
||||
krsort($tabJugements);
|
||||
reset($tabJugements);
|
||||
|
||||
$mBil=new MBilans($siren);
|
||||
$tabBilans=$mBil->listeBilans($accesDist);
|
||||
$derExercice=0;
|
||||
$derProcol=str_replace('-','',key($tabJugements))*1;
|
||||
foreach ($tabBilans as $idx=>$bilan)
|
||||
if ($bilan['dateExercice']>$derExercice) $derExercice=$bilan['dateExercice'];
|
||||
if ($derExercice>$derProcol) {
|
||||
$derEx=WDate::dateT('Ymd','d/m/Y',$derExercice);
|
||||
$derPr=WDate::dateT('Ymd','d/m/Y',$derProcol);
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "MInsee::getAnnonceProcol Dissolution sur $siren (cas 4)", "L'entreprise, siren $siren, fait l'objet d'une dissolution de type ".current($tabJugements)." en date du $derPr alors que le dernier bilan publié date du $derEx !".EOL."Merci de vérifier et de supprimer le code évènement le cas échéant !".EOL.print_r($tabBilans,true).EOL."Liste des dernieres annonces :".EOL.print_r($tabJugements,true));
|
||||
$tabRet=array();
|
||||
}
|
||||
}
|
||||
return $tabRet;
|
||||
}
|
||||
@ -4839,7 +4971,7 @@ function getProColPart($siren, $rubrique='', $forceVerif=false, $idAnnonce=0) {
|
||||
|
||||
$strAdrActive='';
|
||||
if ($active) {
|
||||
$strAdrActive.=" AND (enActif=1 OR etActif=1) AND nbEntrep>30 AND siren>1000 ";
|
||||
$strAdrActive.=" AND (enActif=1 OR etActif=1) AND nbEntrep>30 AND pasEntrepDom=0 AND siren>1000 ";
|
||||
}
|
||||
$tabTmp=$this->iDb->select('tabAdrDom',
|
||||
'id, siren, nic, enActif, etActif, procol, nom, nom2, sigle, enseigne, adrNum, adrBtq, adrTypVoie, adrLibVoie, ville, cp, adrComp, adrDistSp, cj, apen, apet, nbEntrep, dateInsert, dateUpdate',
|
||||
@ -5302,6 +5434,110 @@ function getProColPart($siren, $rubrique='', $forceVerif=false, $idAnnonce=0) {
|
||||
return $tabRet;
|
||||
}
|
||||
|
||||
/** Retourne la date de changement de statut de siège à établissment secondaire pour un établissement donné
|
||||
**
|
||||
** @param integer $siren Siren de l'entreprise
|
||||
** @param integer $nic Nic de l'étabissement
|
||||
** @return date Date de changement d'état
|
||||
*/
|
||||
public function isAncienSiege($siren, $nic) {
|
||||
$tabRet=array();
|
||||
$ret=$this->iDbInsee->select('insee_even',
|
||||
'insSIREN, insNIC, insDATEVE, insEVE, insAPET700, insSIEGE, insLIBCOM, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insDEPCOM, insCODEVOIE, insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS, insEVE, insDESTINAT, insTYPETAB, insORIGINE',
|
||||
"insSIREN=$siren AND insNIC=$nic AND insMNICSIEGE=1 ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
||||
return $ret[0]['insDATEVE'];
|
||||
}
|
||||
|
||||
/** Recherche les siret associés à un siret (successeur et/ou prédécesseur)
|
||||
**
|
||||
** @param integer $siren Siren de l'entreprise
|
||||
** @param integer $nic Nic de l'étabissement
|
||||
** @param integer $lien Type de lien (-1=prédécesseur, 0=prédécesseur et/ou successeur, 1=successeur)
|
||||
**/
|
||||
public function getSiretAssoc($siren, $nic, $lien=0) {
|
||||
$tabRet=array();
|
||||
$ret=$this->iDbInsee->select('insee_even',
|
||||
'insSIREN, insNIC, insDATEVE, insEVE, insAPET700, insSIEGE, insLIBCOM, insL1_NOMEN, insL2_COMP, insL4_VOIE, insL3_CADR, insL5_DISP, insL6_POST, insCODPOS, insL7_ETRG, insDEPCOM, insCODEVOIE, insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS, insEVE, insDESTINAT, insTYPETAB, insORIGINE',
|
||||
"insSIREN=$siren AND insNIC<>$nic AND insEVE IN ('510','520','530','540') AND insDATEMAJ IN (
|
||||
SELECT insDATEMAJ FROM insee_even WHERE insSIREN=$siren AND insNIC=$nic AND insEVE IN ('510','520','530','540') )", false, MYSQL_ASSOC);
|
||||
foreach ($ret as $iRet=>$tabEve) {
|
||||
switch($tabEve['insTYPETAB']*1) {
|
||||
case 8:
|
||||
case 10:
|
||||
case 20:
|
||||
case 30:
|
||||
if ($lien==1) continue;
|
||||
$typeLien='pre';
|
||||
break;
|
||||
case 9:
|
||||
case 11:
|
||||
case 21:
|
||||
case 31:
|
||||
if ($lien==-1) continue;
|
||||
$typeLien='suc';
|
||||
break;
|
||||
default:
|
||||
if ($lien<>0) continue;
|
||||
$typeLien='ind';
|
||||
break;
|
||||
}
|
||||
$tabRet[$typeLien]=array('siren' => $tabEve['insSIREN'],
|
||||
'nic' => $tabEve['insNIC'],
|
||||
'apeEtab' => $tabEve['insAPET700'],
|
||||
'codeEve' => $tabEve['insEVE'],
|
||||
'dateEve' => $tabEve['insDATEVE'],
|
||||
'adrL1' => $tabEve['insL1_NOMEN'],
|
||||
'adrL2' => $tabEve['insL2_COMP'],
|
||||
'adrL3' => prepareString($tabEve['insL3_CADR']),
|
||||
'adrL4' => $tabEve['insL4_VOIE'],
|
||||
'adrL5' => $tabEve['insL5_DISP'],
|
||||
'adrL6' => $tabEve['insL6_POST'],
|
||||
'adrL7' => $tabEve['insL7_ETRG'],
|
||||
'depCom' => $tabEve['insDEPCOM'],
|
||||
'rivoli' => $tabEve['insCODEVOIE'],
|
||||
'siege' => $tabEve['insSIEGE'],
|
||||
'destinat' => $tabEve['insDESTINAT'],
|
||||
'typEtab' => $tabEve['insTYPETAB'],
|
||||
'origine' => $tabEve['insORIGINE'],
|
||||
// insNICTRAN, insSIRETPS, insDATEMAJ, idFlux, insSIRETASS,
|
||||
);
|
||||
}
|
||||
return $tabRet;
|
||||
}
|
||||
|
||||
public function getInfoSirene($dept, $siren, $apen=false) {
|
||||
$strAdr1Comp=$tel='';
|
||||
if ($siren>=100000000 && $siren<300000000){
|
||||
$dept=18;
|
||||
$strAdr1Comp=', Pôle Secteur Public';
|
||||
} else {
|
||||
if (!$apen) {
|
||||
$tabId=$this->getIdentiteLight($siren);
|
||||
$apen=$tabId['NafEnt'];
|
||||
$strAdr1Comp=', Pôle Agricole';
|
||||
}
|
||||
$apen2=''.substr($apen,0,2);
|
||||
if ($apen2=='01' || $apen2=='02') {
|
||||
$dept=59; //
|
||||
$tel='03.20.62.86.45';
|
||||
}
|
||||
}
|
||||
$ret=$this->iDbInsee->select('insee_drsiren', 'siret,nom,adr1,adr2,adr3,cp,ville,tel,fax',
|
||||
"dept='$dept'", false, MYSQL_ASSOC);
|
||||
$ret=$ret[0];
|
||||
if ($tel=='') $tel=$ret['tel'];
|
||||
return array('siret'=>$ret['siret'],
|
||||
'nom'=>$ret['nom'],
|
||||
'adr1'=>$ret['adr1'].$strAdr1Comp,
|
||||
'adr2'=>$ret['adr2'],
|
||||
'adr3'=>$ret['adr3'],
|
||||
'cp'=>$ret['cp'],
|
||||
'ville'=>$ret['ville'],
|
||||
'standard'=>'09.72.72.6000',
|
||||
'tel'=>$tel,
|
||||
'fax'=>$ret['fax']);
|
||||
}
|
||||
|
||||
public function getInfosIris($codeCommune, $codeRivoli, $adrNum, $adrIndRep, $adrTypVoie, $adrLibVoie) {
|
||||
$tabTypeIris=array('A'=>'IRIS d\'activité', 'H'=>'IRIS d\'habitat', 'D'=>'IRIS divers (grande zone peu habité dont parcs, ports, forêts, ...)', 'Z'=>'Commune non découpée en IRIS');
|
||||
$tabRet=$ret2=array();
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,6 +5,160 @@ include_once(FWK_PATH.'common/dates.php');
|
||||
//include_once(INCLUDE_PATH.'partenaires/classMRncsFlux.php');
|
||||
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
||||
|
||||
define ('ECART_CTRL_MAX', 5); // Ecart maximal acceptable dans la saisie +/-5 entre les calculs et la saisie !
|
||||
|
||||
global $tabCtrl;
|
||||
$tabCtrl=array(
|
||||
/** Bilans Réel Normal **/
|
||||
'S'=>array(
|
||||
// Actif Simplifié
|
||||
'010-012=013'=>'Fonds commercial (Brut,Amor/Prov et Net incohérents)',
|
||||
'014-016=017'=>'Immos incorpo. autres (Brut,Amor/Prov et Net incohérents)',
|
||||
'028-030=031'=>'Immos corpo. (Brut,Amor/Prov et Net incohérents)',
|
||||
'040-042=043'=>'Immos finan. (Brut,Amor/Prov et Net incohérents)',
|
||||
'044-048=049'=>'Total (I) Actif Immos (Brut,Amor/Prov et Net incohérents)',
|
||||
'010+014+028+040=044'=>'Total Actif immobilisé Brut',
|
||||
'012+016+030+042=048'=>'Total Actif immobilisé Amor/Prov',
|
||||
'013+017+031+043=049'=>'Total Actif immobilisé Net',
|
||||
'050-052=053'=>'Stocks MP (Brut,Amor/Prov et Net incohérents)',
|
||||
'060-062=063'=>'Stocks Marchandises (Brut,Amor/Prov et Net incohérents)',
|
||||
'064-066=067'=>'Avances et acomptes/cmds (Brut,Amor/Prov et Net incohérents)',
|
||||
'068-070=071'=>'Créances clients et CR (Brut,Amor/Prov et Net incohérents)',
|
||||
'072-074=075'=>'Autres créances (Brut,Amor/Prov et Net incohérents)',
|
||||
'080-082=083'=>'VMP (Brut,Amor/Prov et Net incohérents)',
|
||||
'084-086=087'=>'Disponibilités (Brut,Amor/Prov et Net incohérents)',
|
||||
'088-090=091'=>' (Brut,Amor/Prov et Net incohérents)',
|
||||
'092-094=095'=>'Ch. constatées d\'avance (Brut,Amor/Prov et Net incohérents)',
|
||||
'096-098=099'=>'Total (II) Actif Circulant (Brut,Amor/Prov et Net incohérents)',
|
||||
'110-112=113'=>'Total ACTIF (Brut,Amor/Prov et Net incohérents)',
|
||||
'050+060+064+068+072+080+084+088+092=096'=>'Total Actif circulant Brut',
|
||||
'052+062+066+070+074+082+086+090+094=098'=>'Total Actif circulant Amor/Prov',
|
||||
'053+063+067+071+075+083+087+091+092=099'=>'Total Actif circulant Net',
|
||||
'044+096=110'=>'Total ACTIF Brut',
|
||||
'048+098=112'=>'Total ACTIF Amor/Prov',
|
||||
'049+099=113'=>'Total ACTIF Net',
|
||||
// Passif Simplifié
|
||||
'120+124+126+130+132+134+136+140=142'=>'Total Capitaux Propres',
|
||||
'156+164+166+172+174=176'=>'Total Dettes',
|
||||
'142+154+176=180'=>'Total Passif',
|
||||
'113=180'=>'Actif=Passif',
|
||||
// CDR Simplifié
|
||||
'210+214+218+222+224+226+230=232'=>'Total des produits d\'exploitation',
|
||||
'234+236+238+240+242+244+250+252+254+256+262=264'=>'Total des charges d\'exploitation',
|
||||
'210+214+218+222+224+226+230=232'=>'Total des produits d\'exploitation',
|
||||
'232-264=270'=>'Résultat d\'exploitation',
|
||||
'232+280+290-264-294-300-306=310'=>'Résultat d\'exploitation',
|
||||
),
|
||||
'N'=>array(
|
||||
// Actif immobilisé
|
||||
'AA=AA2'=>'Capital souscrit non appelé',
|
||||
'AB-AC=AC1'=>'Frais d\'étab. (Brut,Amor/Prov et Net incohérents)',
|
||||
'AD-AE=AE1'=>'Frais de R&D (Brut,Amor/Prov et Net incohérents)',
|
||||
'AF-AG=AG1'=>'Brevets (Brut,Amor/Prov et Net incohérents)',
|
||||
'AH-AI=AI1'=>'Fonds commercial (Brut,Amor/Prov et Net incohérents)',
|
||||
'AJ-AK=AK1'=>'Autres immo inc. (Brut,Amor/Prov et Net incohérents)',
|
||||
'AL-AM=AM1'=>'Acomptes immo inc. (Brut,Amor/Prov et Net incohérents)',
|
||||
'AN-AO=AO1'=>'Terrains (Brut,Amor/Prov et Net incohérents)',
|
||||
'AP-AQ=AQ1'=>'Constructions (Brut,Amor/Prov et Net incohérents)',
|
||||
'AR-AS=AS1'=>'Installations (Brut,Amor/Prov et Net incohérents)',
|
||||
'AT-AU=AU1'=>'Autres immo corp. (Brut,Amor/Prov et Net incohérents)',
|
||||
'AV-AW=AW1'=>'Immos en cours (Brut,Amor/Prov et Net incohérents)',
|
||||
'AX-AY=AY1'=>'Acomptes immo corp. (Brut,Amor/Prov et Net incohérents)',
|
||||
'CS-CT=CT1'=>'Immo Fi participations/équiv. (Brut,Amor/Prov et Net incohérents)',
|
||||
'CU-CV=CV1'=>'Autres participations (Brut,Amor/Prov et Net incohérents)',
|
||||
'BB-BC=BC1'=>'Créances rattachées à des particip. (Brut,Amor/Prov et Net incohérents)',
|
||||
'BD-BE=BE1'=>'Autres titres immo. (Brut,Amor/Prov et Net incohérents)',
|
||||
'BF-BG=BG1'=>'Prêts (Brut,Amor/Prov et Net incohérents)',
|
||||
'BH-BI=BI1'=>'Autres Immo Financières (Brut,Amor/Prov et Net incohérents)',
|
||||
'BJ-BK=BK1'=>'Total de l\'Actif Immobilisé (Brut,Amor/Prov et Net incohérents)',
|
||||
'AB+AD+AF+AH+AJ+AL+AN+AP+AR+AT+AV+AX+CS+CU+BB+BD+BF+BH=BJ'=>'Total des Immobilisations (Brut)',
|
||||
'AC+AE+AG+AI+AK+AM+AO+AQ+AS+AU+AW+AY+CT+CV+BC+BE+BG+BI=BK'=>'Total des Immobilisations (Amor.)',
|
||||
'AC1+AE1+AG1+AI1+AK1+AM1+AO1+AQ1+AS1+AU1+AW1+AY1+CT1+CV1+BC1+BE1+BG1+BI1=BK1'=>'Total des Immobilisations (Net)',
|
||||
// Actif circulant
|
||||
'BL-BM=BM1'=>'Stocks de MP (Brut,Amor/Prov et Net incohérents)',
|
||||
'BN-BO=BO1'=>'Stocks en cours de prod. biens (Brut,Amor/Prov et Net incohérents)',
|
||||
'BP-BQ=BQ1'=>'Stocks en cours de prod. services (Brut,Amor/Prov et Net incohérents)',
|
||||
'BR-BS=BS1'=>'Stocks produits finis (Brut,Amor/Prov et Net incohérents)',
|
||||
'BT-BU=BU1'=>'Stocks de marchandises (Brut,Amor/Prov et Net incohérents)',
|
||||
'BV-BW=BW1'=>'Avances et acomptes/cmds (Brut,Amor/Prov et Net incohérents)',
|
||||
'BX-BY=BY1'=>'Créances clients (Brut,Amor/Prov et Net incohérents)',
|
||||
'BZ-CA=CA1'=>'Autres créances (Brut,Amor/Prov et Net incohérents)',
|
||||
'CB-CC=CC1'=>'Capital souscrit appelé non versé (Brut,Amor/Prov et Net incohérents)',
|
||||
'CD-CE=CE1'=>'VMP (Brut,Amor/Prov et Net incohérents)',
|
||||
'CF-CG=CG1'=>'Disponibilités (Brut,Amor/Prov et Net incohérents)',
|
||||
'CH-CI=CI1'=>'Charges Const. d\'avance(Brut,Amor/Prov et Net incohérents)',
|
||||
'CJ-CK=CK1'=>'Total de l\'Actif Circulant (Brut,Amor/Prov et Net incohérents)',
|
||||
'BL+BN+BP+BR+BT+BV+BX+BZ+CB+CD+CF+CH=CJ'=>'Total l\'Actif Circulant (Brut)',
|
||||
'BM+BO+BQ+BS+BU+BW+BY+CA+CC+CE+CG+CI=CK'=>'Total l\'Actif Circulant (Amor.)',
|
||||
'BM1+BO1+BQ1+BS1+BU1+BW1+BY1+CA1+CC1+CE1+CG1+CI1=CK1'=>'Total l\'Actif Circulant (Net)',
|
||||
'CL=CL2'=>'Charges / plus. ex. (Brut<>Net)',
|
||||
'CM=CM2'=>'Primes de Rbt obligations (Brut<>Net)',
|
||||
'CN=CN2'=>'Ecarts de conversion d\'actif (Brut<>Net)',
|
||||
'CO-1A=1A1'=>'Total Actif (Brut,Amor/Prov et Net incohérents)',
|
||||
'AA+BJ+CJ+CL+CM+CN=CO'=>'Total Actif Brut',
|
||||
'BK+CK=1A'=>'Total Actif (Amor.)',
|
||||
'AA2+BK1+CK1+CL2+CM2+CN2=1A1'=>'Total Actif Net',
|
||||
// PASSIF
|
||||
'DA+DB+DC+DD+DE+DF+DG+DH+DI+DJ+DK=DL'=>'Passif : s/total I (Capitaux Propres)',
|
||||
'DM+DN=DO'=>'Passif : s/total II (Autres fonds propres)',
|
||||
'DP+DQ=DR'=>'Passif : s/total III (Provisions)',
|
||||
'DS+DT+DU+DV+DW+DX+DY+DZ+EA+EB=EC'=>'Passif : s/total IV (Dettes+Cpt régul. PCA)',
|
||||
'DL+DO+DR+EC+ED=EE'=>'Total Passif',
|
||||
'EE=1A1'=>'Total Actif=Total Passif',
|
||||
// CDR
|
||||
'FA+FB=FC'=>'Total Ventes de marchandises',
|
||||
'FD+FE=FF'=>'Total Production vendue de biens',
|
||||
'FG+FH=FI'=>'Total Production vendue de services',
|
||||
'FJ+FK=FL'=>'Total Chiffe d\'Affaires France+Export',
|
||||
'FA+FD+FG=FJ'=>'Total C.A. France',
|
||||
'FB+FE+FH=FK'=>'Total C.A. Export',
|
||||
'FC+FF+FI=FL'=>'Total C.A. Total (Vtes+Biens+Services)',
|
||||
'FL+FM+FN+FO+FP+FQ=FR'=>'Total I : Produits d\'Exploitation',
|
||||
'FS+FT+FU+FV+FW+FX+FY+FZ+GA+GB+GC+GD+GE=GF'=>'Total II :Charges d\'Exploitation',
|
||||
'FR-GF=GG'=>'1 - Résultat d\'Exploitation',
|
||||
'GJ+GK+GL+GM+GN+GO=GP'=>'Total V : Produits Financiers',
|
||||
'GQ+GR+GS+GT=GU'=>'Total VI : Charges Financières',
|
||||
'GP-GU=GV'=>'2 - Résultat Financier',
|
||||
'GG+GH-GI+GV=GW'=>'3 - R.C.A.I.',
|
||||
'HA+HB+HC=HD'=>'Total VII : Produits Exceptionnels',
|
||||
'HE+HF+HG=HH'=>'Total VIII : Charges Exceptionnels',
|
||||
'HD-HH=HI'=>'4 - Résultat Exceptionnel',
|
||||
'FR+GH+GP+HD=HL'=>'CDR : Total des Produits',
|
||||
'GF+GI+GU+HH+HJ+HK=HM'=>'CDR : Total des Charges',
|
||||
'HL-HM=HN'=>'5 - Résultat de l\'exercice',
|
||||
// Immobilisations
|
||||
/* 'LY+MB+ME+MH+MK+MN+MQ+MT+MW+NA+NE=NH'=>'2054: Immos Total III Brut fin ex. incohérent',
|
||||
'0V+0Y+2C+2F=NK'=>'2054: Immos Total IV Brut fin ex. incohérent',
|
||||
'LU+LW+NH+NK=0L'=>'2054: Immos Total Général Brut fin ex. incohérent',
|
||||
'0L=BJ'=>'Immos Total Général Brut du 2054 <> BJ du 2050',*/
|
||||
),
|
||||
);
|
||||
|
||||
$tabLibCodeSaisie=array(
|
||||
'_00'=>'Bilan saisi sans anomalie',
|
||||
'_01'=>'Bilan saisi avec des incohérences comptables à la source du document (issues du remettant)',
|
||||
'_02'=>'Bilan avec Actif, Passif ou Compte de Résultat nul',
|
||||
'_03'=>'Bilan incomplet (des pages manquent)',
|
||||
'_04'=>'Bilan complet non détaillé (seuls les totaux et sous totaux sont renseignés)',
|
||||
'_05'=>'Bilan reçu en double exemplaire',
|
||||
'_06'=>'Bilan intermédiaire - Situation provisoire',
|
||||
'_07'=>'Bilan illisible',
|
||||
'_A7'=>'Bilan illisible, présentant un cadre gris très foncés (dans lesquels sont inscrits en général les totaux)',
|
||||
'_B7'=>'Bilan manuscrits',
|
||||
'_C7'=>'Bilan illisible, présentant des caractères trop gras',
|
||||
'_D7'=>'Bilan scanné en biais ou qui présentent des pages rognées',
|
||||
'_E7'=>'Bilan numérisés trop clairement (comme une imprimante dont la cartouche est presque vide)',
|
||||
'_F7'=>'Bilan illisible',
|
||||
'_08'=>'Bilan consolidé',
|
||||
'_09'=>'Déclaration d\'impôts',
|
||||
'_10'=>'Document autre que bilan',
|
||||
'_11'=>'Bilan de clôture de liquidation',
|
||||
'_12'=>'Bilan de Société financière',
|
||||
'_13'=>'Bilan de Société d\'assurance',
|
||||
'_14'=>'Bilan de Société immobilière',
|
||||
'_15'=>'Bilan de Société étrangère',
|
||||
);
|
||||
|
||||
class MBilans {
|
||||
|
||||
public $siren;
|
||||
@ -46,6 +200,36 @@ class MBilans {
|
||||
else
|
||||
$tabRet=$tabRet2=array();
|
||||
|
||||
if ($ENV=='PRD') { // A supprimer le jour ou on vire l'ancien serveur car curl plantait sur Infogreffe !!!
|
||||
$tabRefXml=$tabRefPdf=array();
|
||||
// Tableau des références de bilans XML Infogreffe
|
||||
foreach ($tabRet as $idxTmp=>$bilanTmp) {
|
||||
if ((substr($idxTmp,-4)*1)>(date(Y)-4))
|
||||
$tabRefXml[]=$bilanTmp['ref'];
|
||||
}
|
||||
|
||||
$tabImg=$this->igreffe->getBilansImages($this->siren);
|
||||
// Tableau des références de bilans PDF Infogreffe
|
||||
foreach ($tabImg as $idxTmp=>$bilanTmp) {
|
||||
if ($bilanTmp['annee']>(date(Y)-4))
|
||||
$tabRefPdf[]=$bilanTmp['ref'];
|
||||
}
|
||||
|
||||
$tabDiff=array_diff($tabRefPdf, $tabRefXml);
|
||||
if (count($tabDiff)>0) {
|
||||
$strMillesimes='';
|
||||
foreach ($tabDiff as $value) {
|
||||
$tabTmp=explode('-',$value);
|
||||
$strMillesimes.=$tabTmp[0].', ';
|
||||
}
|
||||
@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Bilans non saisit sur $this->siren pour $strMillesimes",
|
||||
'Différence :'.EOL.print_r($tabDiff,true) .EOL.
|
||||
'Liste XML:'.EOL.print_r($tabRefXml, true) .EOL.
|
||||
'Liste PDF:'.EOL.print_r($tabRefPdf,true) .EOL
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$tabTri=array();
|
||||
foreach ($tabRet as $millesime=>$bil) {
|
||||
$typeBilan=substr($millesime,0,1);
|
||||
@ -622,32 +806,49 @@ class MBilans {
|
||||
|
||||
$tabBS2BN=array('AH'=>'010',
|
||||
'AI'=>'012',
|
||||
'AI1'=>'013',
|
||||
'AJ'=>'014',
|
||||
'AK'=>'016',
|
||||
'AK1'=>'017',
|
||||
'AT'=>'028',
|
||||
'AU'=>'030',
|
||||
'AU1'=>'031',
|
||||
'BH'=>'040',
|
||||
'BI'=>'042',
|
||||
'BI1'=>'043',
|
||||
'BJ'=>'044',
|
||||
'BK'=>'048',
|
||||
'BK1'=>'049',
|
||||
'BL'=>'050',
|
||||
'BM'=>'052',
|
||||
'BM1'=>'053',
|
||||
'BT'=>'060',
|
||||
'BU'=>'062',
|
||||
'BU1'=>'063',
|
||||
'BV'=>'064',
|
||||
'BW'=>'066',
|
||||
'BW1'=>'067',
|
||||
'BX'=>'068',
|
||||
'BY'=>'070',
|
||||
'BY1'=>'071',
|
||||
'BZ'=>'072',
|
||||
'CA'=>'074',
|
||||
'CA1'=>'075',
|
||||
'CD'=>'080',
|
||||
'CE'=>'082',
|
||||
'CE1'=>'083',
|
||||
'CF'=>'084',
|
||||
'CG'=>'086',
|
||||
'CG1'=>'087',
|
||||
'CH'=>'092',
|
||||
'CI'=>'094',
|
||||
'CI1'=>'095',
|
||||
'CJ'=>'096',
|
||||
'CK'=>'098',
|
||||
'CK1'=>'099',
|
||||
'CO'=>'110',
|
||||
'1A'=>'112',
|
||||
'1A1'=>'113',
|
||||
'DA'=>'120',
|
||||
'DC'=>'124',
|
||||
'DD'=>'126',
|
||||
|
@ -140,7 +140,7 @@ class MFacto {
|
||||
public function getCoteSpeciale($siren) {
|
||||
$ret=$this->iDb->select( 'ge_cs2',
|
||||
'siren, cs, dateFin, dateInsert, dateConf',
|
||||
"siren=$siren ORDER BY dateConf DESC, dateInsert DESC", false, MYSQL_ASSOC);
|
||||
"siren=$siren AND (dateSuppr=0 OR dateConf>dateSuppr) ORDER BY dateConf DESC, dateInsert DESC", false, MYSQL_ASSOC);
|
||||
$tabRet=array();
|
||||
foreach ($ret as $i=>$tabCS) {
|
||||
$dateEven=$tabCS['dateConf'];
|
||||
|
@ -1289,6 +1289,10 @@ class MGreffes {
|
||||
$tabTmp=explode(' ', trim(substr($strSiren,11,strlen($strSiren)-11)));
|
||||
$typeRCS=$tabTmp[0];
|
||||
unset($tabTmp[0]);
|
||||
if ($typeRCS=='Registre' && strpos(trim(substr($strSiren,11,strlen($strSiren)-11)), 'Spécial des Entrepreneurs Individuels à Responsabilité Limitée')) {
|
||||
$typeRCS='RSEIRL';
|
||||
$greffe_lib=trim(preg_replace('/^Spécial des Entrepreneurs Individuels à Responsabilité Limitée/','',trim(implode(' ', $tabTmp))));
|
||||
} else
|
||||
$greffe_lib=trim(preg_replace('/^inscrit au R.C.S./','',trim(implode(' ', $tabTmp))));
|
||||
|
||||
$strTmp=@getTextInHtml($this->body, '<td class=\'content\'>IDENTITE</td></tr></table></div>', '</tr></table></div>', '<span class="span-planAcces">');
|
||||
@ -2045,7 +2049,7 @@ function getInfogreffeXML($req){
|
||||
$xml = str_replace("<?xml version='1.0' encoding='UTF-8'?><SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'><SOAP-ENV:Body><ns0:getProduitsWebServicesXMLResponse xmlns:ns0='urn:local' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><return xsi:type='xsd:string'>", '', $output);
|
||||
$xml = str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $xml);
|
||||
// $firephp->log($xml,'XML');
|
||||
debugLog('I', "Accès Infogreffe WS Après = $url", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
debugLog('I', "Accès Infogreffe WS Après = $url $xml", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
|
||||
|
||||
return $xml;
|
||||
}
|
||||
@ -2258,7 +2262,7 @@ function getListeBilans($siren, $type='*') {
|
||||
}
|
||||
|
||||
}
|
||||
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes::getListeBilans sur $siren", $xml.EOL.print_r($tabRet, true));
|
||||
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes::getListeBilans sur $siren", $xml.EOL.print_r($tabRet, true).EOL.'enCache='.$this->enCache.EOL);
|
||||
return $tabRet;
|
||||
}
|
||||
|
||||
@ -2782,13 +2786,6 @@ function getBilansImages($siren, $ref='') {
|
||||
}
|
||||
$ref=$mil."_$typeCpt-".str_replace('-', '',$dateClotureIso)."-$dgre-$dmil-$dsta-$dchr-$num_depot";
|
||||
|
||||
/* $tabRet2[]=array( 'dateProvPartenaire'=>date('Ymd'),
|
||||
'monnaie' =>'EUR',
|
||||
'source' =>10,
|
||||
'ref' =>$ref,
|
||||
=>$millesime,
|
||||
'index' =>$type.Wdate::dateT('Y-m-d','d/m/Y',$millesime),
|
||||
);*/
|
||||
$tabRet[]=array( 'siren' => $siren,
|
||||
'numRC' => $dmil.'-'.$dsta.'-'.$dchr,
|
||||
'numGreffe' => $dgre,
|
||||
@ -3074,6 +3071,68 @@ function getListeCessions($typeProcedure='rj') {
|
||||
}
|
||||
}
|
||||
|
||||
/** Declaration d'une anomalie chez Infogreffe
|
||||
*
|
||||
* @param $siren Siren de l'entreprise concernée
|
||||
* @param $type Type d'anomalie 'CB10','IMR10','WS10'
|
||||
* @param $description Description complète de l'anomalie
|
||||
*/
|
||||
function declareAnomalie($siren, $type, $description) {
|
||||
/*
|
||||
CB10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=37
|
||||
IMR10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=11
|
||||
WS10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=36
|
||||
|
||||
https://www.infogreffe.fr/mantis/view_all_bug_page.php
|
||||
https://www.infogreffe.fr/mantis/csv_export.php
|
||||
*/
|
||||
$url='https://www.infogreffe.fr/mantis/login_page.php';
|
||||
$page=getUrl($url, '', '', '', false, 'www.infogreffe.fr', false, '', '', 21);
|
||||
//print_r($page);
|
||||
$this->body=$page['body'];
|
||||
$this->codeRetour=$page['code'];
|
||||
if ($this->codeRetour<>'200') {
|
||||
$this->libErreur='Erreur Mantis 200a !';
|
||||
return false;
|
||||
}
|
||||
$this->cookie=$page['header']['Set-Cookie'];
|
||||
$this->referer=$url;
|
||||
|
||||
$url='https://www.infogreffe.fr/mantis/login.php';
|
||||
$postData=array('username'=>'SCOREDECISIONS',
|
||||
'password'=>'scoredecisions09');
|
||||
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
|
||||
// print_r($page);
|
||||
$this->referer=$url;
|
||||
$this->body=$page['body'];
|
||||
$this->codeRetour=$page['code'];
|
||||
if ($this->codeRetour<>'302') {
|
||||
$this->libErreur='Erreur Mantis 302b !';
|
||||
return false;
|
||||
}
|
||||
$this->cookie=$page['header']['Set-Cookie'];
|
||||
/*
|
||||
$url='https://www.infogreffe.fr/mantis/'.$page['header']['Location'];
|
||||
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
|
||||
$this->referer=$url;
|
||||
$this->body=$page['body'];
|
||||
$this->codeRetour=$page['code'];
|
||||
if ($this->codeRetour<>'302') {
|
||||
$this->libErreur='Erreur Mantis 302b !';
|
||||
return false;
|
||||
}
|
||||
$this->cookie=$page['header']['Set-Cookie'];
|
||||
/*print_r($page);
|
||||
die();*/
|
||||
|
||||
$url='https://www.infogreffe.fr/mantis/view_all_bug_page.php';
|
||||
$url='https://www.infogreffe.fr/mantis/csv_export.php';
|
||||
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
|
||||
print_r($page);
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
@ -585,116 +585,6 @@ class MLiens {
|
||||
}
|
||||
|
||||
|
||||
private function getLiensPartenaires($siren=false) {
|
||||
if (!$siren) $siren=$this->siren;
|
||||
/** Le partenaire pour les liens Actionnaires/Participations est infobilan.decideur.com
|
||||
**/
|
||||
$urlRacine='http://infobilan.decideur.com/';
|
||||
$tabPost=array( 'choix'=>'1',
|
||||
'pagePrecedente'=>'recherche_entreprise.html',
|
||||
'nomsocRech'=>'',
|
||||
'cpRech'=>'',
|
||||
'villeRech'=>'',
|
||||
'nomdirRech'=>'',
|
||||
'predirRech'=>'',
|
||||
'sirenRech'=>$this->siren,
|
||||
'telRech'=>'',
|
||||
'Rechercher.x'=>round(79),
|
||||
'Rechercher.y'=>round(19),);
|
||||
$url=$urlRacine.'liste_result.html';
|
||||
$referer=$urlRacine.'recherche_entreprise.html';
|
||||
$page=getUrl($url,'', $tabPost, $referer, false, 'infobilan.decideur.com');
|
||||
$this->body=$page['body'];
|
||||
$strCookie=$page['header']['Set-Cookie'];
|
||||
$refererInfoD=$url;
|
||||
|
||||
if(preg_match_all('/<a href="choix_pdt\.html\?(.*)" class="tt1">(.*)<\/a><\/span><br>/i', $page['body'], $matches))
|
||||
{
|
||||
$urlInfoD=$urlRacine.'choix_pdt.html?'.$matches[1][0];
|
||||
$page=getUrl($urlInfoD,$strCookie,'', $refererInfoD, false, 'infobilan.decideur.com');
|
||||
$referer=$urlInfoD;
|
||||
if ($this->nscrl==0) $this->nscrl=@getTextInHtml($url, 'nscrlP=', '=','&');
|
||||
|
||||
$url=$urlRacine.'fiche_ident.html';
|
||||
$page=getUrl($url,$strCookie,'', $referer, false, 'infobilan.decideur.com');
|
||||
$this->body=$page['body'];
|
||||
|
||||
if ($this->raisonSociale=='')
|
||||
$this->raisonSociale=trim(@getTextInHtml($this->body, '<span class="libelle2">Société', ' :', '</span>'));
|
||||
|
||||
if ($this->adresse=='')
|
||||
$this->adresse=trim(@getTextInHtml($this->body, '<span class="libelle2">Adresse</span> <strong>:', '</strong>', '</td>'));
|
||||
|
||||
if ($this->tel=='')
|
||||
$this->tel=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Tél', '</span>', '<br>'));
|
||||
if ($this->fax=='')
|
||||
$this->fax=trim(@getTextInHtml($this->body, '<span class="libelle2">Fax</span>', ' :', '<br>'));
|
||||
if ($this->web=='')
|
||||
$this->web=trim(@getTextInHtml($this->body, '<span class="libelle2">Site Web</span>', '<a href="', '" target="_blank">'));
|
||||
if ($this->mail=='')
|
||||
$this->mail=trim(@getTextInHtml($this->body, '<span class="libelle2">E-mail</span>', '<a href="mailto:', '">'));
|
||||
if ($this->naf=='')
|
||||
$this->naf=trim(@getTextInHtml($this->body, '<span class="libelle2">Code NAF</span>', ' :', '</td>'));
|
||||
|
||||
if(preg_match('/<td valign="top"><span class="libelle2">Capital social<\/span> : (\d*)(.*)<br>/isU', $this->body, $matches)
|
||||
&& ($this->capitalMontant=='' || $this->capitalDevise=='')) {
|
||||
$this->capitalMontant=trim($matches[1]);
|
||||
$this->capitalDevise=trim($matches[2]);
|
||||
}
|
||||
|
||||
if ($this->fj=='')
|
||||
$this->fj=trim(@getTextInHtml($this->body, '<span class="libelle2">Forme juridique</span>', ' :', '<br>'));
|
||||
if ($this->nationalite=='')
|
||||
$this->nationalite=trim(@getTextInHtml($this->body, '<span class="libelle2">Nationalité</span>', ' :', '</td>'));
|
||||
if ($this->effectif=='')
|
||||
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
|
||||
if ($this->activite=='')
|
||||
$this->activite=trim(@getTextInHtml($this->body, '<span class="libelle2">Activité</span>', ' :', '<br>'));
|
||||
|
||||
/** Actionnaires **/
|
||||
$strTmp=trim(@getTextInHtml($this->body, 'ACTIONNAIRES<br>', '</div></h1>', '<h1>'));
|
||||
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> : (.*) %<br>(.*)<\/p>/isU', $strTmp, $matches)) {
|
||||
foreach ($matches[1] as $i=>$nom) {
|
||||
$this->tabAct[$i]['nom']=trim($nom);
|
||||
$this->tabAct[$i]['pct']=trim($matches[2][$i]);
|
||||
$this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
|
||||
}
|
||||
}
|
||||
|
||||
/** Filiales **/
|
||||
$strTmp=trim(@getTextInHtml($this->body, 'FILIALES<br>', '</div></h1>', '<h1>'));
|
||||
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> :(.*)%<br>(.*)<\/p>/isU', $strTmp, $matches)) {
|
||||
foreach ($matches[1] as $i=>$nom) {
|
||||
$this->tabFil[$i]['nom']=trim($nom);
|
||||
$this->tabFil[$i]['pct']=trim($matches[2][$i]);
|
||||
$this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
|
||||
}
|
||||
}
|
||||
|
||||
/** CA et Résultat **/
|
||||
$strTmp=trim(@getTextInHtml($this->body, '<h1>PRINCIPAUX ELEMENTS FINANCIERS<br>', '</div></h1>', '</p>'));
|
||||
if(preg_match('/<p><span class="libelle2">CA (.*)<\/span>(.*)<br>/isU', $strTmp, $matches)) {
|
||||
$this->derExerciceAnnee=trim($matches[1]);
|
||||
$this->derExerciceCA=trim(str_replace(':',' ', $matches[2]));
|
||||
}
|
||||
if(preg_match('/<span class="libelle2">Résultat(.*)<\/span>(.*)$/isU', $strTmp, $matches)) {
|
||||
$this->derExerciceResultat=trim(str_replace(':',' ', $matches[2]));
|
||||
}
|
||||
|
||||
/*
|
||||
$infoBilan=print_r($page, true);
|
||||
$fp=fopen('./infobilan.html', 'w');
|
||||
fwrite($fp, $infoBilan);
|
||||
fclose($fp);
|
||||
*/
|
||||
}
|
||||
|
||||
$tabA=$this->getActionnaires($siren);
|
||||
$tabP=$this->getParticipations($siren);
|
||||
return array( 'actionnaires'=>$tabA,
|
||||
'participations'=>$tabP);
|
||||
}
|
||||
|
||||
public function getMaisonMereFr($siren, $debug=false) {
|
||||
$tabA=$this->getActionnaires($siren, true);
|
||||
$majTrouve=false;
|
||||
@ -813,6 +703,49 @@ class MLiens {
|
||||
|
||||
return array_unique($tabSiren);
|
||||
}
|
||||
|
||||
/** Recherche d'entreprise par leur actionnaire
|
||||
**
|
||||
** @param string $nom Nom de l'actionnaire (obligatoire)
|
||||
** @param string $prenom Prénom de l'actionnaire
|
||||
** @param date $dateNaiss Date de naissance de la SSAA-MM-JJ, SSAA-MM ou SSAA
|
||||
** @param string $lieuNaiss Lieu de naissance (CP, Ville ou Pays)
|
||||
** @param integer $siren Siren de l'actionnaire
|
||||
** @param string $pays Pays de l'actionnaire
|
||||
** @param string $detention Niveau de détention de l'actionnaire
|
||||
** @param integer $deb Position du curseur dans la liste des réponses (0 par défaut)
|
||||
** @param integer $nbRep Nombre de réponses retournées au maximum par cette requete (20 par défaut)
|
||||
** @param integer $maxRep Nombre de réponses recherchées au maximum (200 par défaut)
|
||||
** @param bool $pertinence Recherche orthographique stricte sur les noms et prénoms (si true)
|
||||
** @return Liste des entreprises trouvées
|
||||
**/
|
||||
public function rechercheActionnaire($nom, $prenom='', $dateNaiss='', $villeNaiss='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false) {
|
||||
debugLog('I',"rechercheActionnaire de $nom, $prenom, $fonction, $dateNaiss, $villeNaiss, $pays, $siren entre $pctMin et $pctMax% (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
|
||||
$jour=$mois=$annee='';
|
||||
if ($dateNaiss<>'' && $dateNaiss<>'//' && $dateNaiss<>'0/0/0') {
|
||||
$tabDateNaiss=explode('/', $dateNaiss);
|
||||
|
||||
$jour=$tabDateNaiss[0]*1;
|
||||
if ($jour<1 || $$jour>31) $jour='';
|
||||
|
||||
$mois =$tabDateNaiss[1]*1;
|
||||
if ($mois<1 || $mois>12) $mois='';
|
||||
|
||||
$annee=$tabDateNaiss[2]*1;
|
||||
if ($annee>0 && $annee<100) $annee=('19'.$annee)*1;
|
||||
if ($annee<1800 || $annee>date('Y')*1) $annee='';
|
||||
}
|
||||
$formR=array('type' => 'act',
|
||||
'nom' => $nom,
|
||||
'prenom' => $prenom,
|
||||
'dirDateNaissAAAA' => $annee,
|
||||
'dirDateNaissMM' => $mois,
|
||||
'dirDateNaissJJ' => $jour,
|
||||
// 'departement' => 'D',
|
||||
'cpVille' => $villeNaiss,
|
||||
);
|
||||
return rechercheDir($formR, $deb, $nbRep, $maxRep);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -85,7 +85,8 @@ class MMarques {
|
||||
|
||||
|
||||
function getListeMarques($numMarque, $raisonSociale='', $objet='', $detail=false) {
|
||||
|
||||
$nbTests=0;
|
||||
while (1) {
|
||||
$nbResultatsTot=false;
|
||||
|
||||
if ($numMarque==false || $numMarque*1==0) $numMarque='';
|
||||
@ -112,16 +113,32 @@ class MMarques {
|
||||
if (preg_match("/<div id=\"errors\"><script>alert\('- Votre recherche a donné(.*)réponses\. Seuls les(.*)premiers résultats seront affich/Uis", $body, $matches)) {
|
||||
$nbResultatsTot=trim($matches[1]);
|
||||
$nbResultats=trim($matches[2]);
|
||||
break;
|
||||
} elseif (preg_match('/<div class="txtresultats">(?:.*)<p><strong>(.*)<\/strong> résultats trouvés pour votre requête \: <br\/>/Uis', $body, $matches)) {
|
||||
$nbResultatsTot=trim($matches[1]);
|
||||
$nbResultats=$nbResultatsTot;
|
||||
break;
|
||||
} elseif (preg_match('/<div class="noresult">(?:.*)<p class="b">Vous n\'obtenez pas de résultats pour votre recherche(.*)<\/p>/Uis', $body, $matches)) {
|
||||
$nbResultatsTot=$nbResultats=0;
|
||||
} else {
|
||||
echo "PAS de résultat pour cette recherche :".EOL;
|
||||
break;
|
||||
} elseif (preg_match('/<div id="errors"><script>alert(?:.*)Vous devez renseigner le nom de la marque(?:.*)<\/script><\/div>/Uis', $body, $matches) && $numMarque=='') {
|
||||
echo "Pas de résultat pour cette recherche :".EOL;
|
||||
print_r($post);
|
||||
print_r($page);
|
||||
die();
|
||||
$nbTests++;
|
||||
if ($nbTests>1)
|
||||
die("PAS de résultat pour cette recherche, essai n°$nbTests !".EOL);
|
||||
} else {
|
||||
$this->partConnection();
|
||||
echo "Pas de résultat pour cette recherche :".EOL;
|
||||
/*
|
||||
print_r($post);
|
||||
print_r($page);
|
||||
die("PAS de résultat pour cette recherche !".EOL);*/
|
||||
return false;
|
||||
}
|
||||
// if ($nbResultatsTot!==false)
|
||||
// break;
|
||||
}
|
||||
$nbPages=ceil($nbResultats/10);
|
||||
echo "$nbResultatsTot résultats trouvés ($nbResultats soit $nbPages pages)".EOL;
|
||||
@ -305,7 +322,7 @@ class MMarques {
|
||||
echo "Erreur 'marques_classes' : ".mysql_error().EOL;
|
||||
print_r($tabInsert);
|
||||
print_r($tabMarque['classes']);
|
||||
die();
|
||||
die("Erreur 'marques_classes' : ".mysql_error().EOL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -322,7 +339,7 @@ class MMarques {
|
||||
echo "Erreur 'marques_pays' : ".mysql_error().EOL;
|
||||
print_r($tabInsert);
|
||||
print_r($tabMarque['pays']);
|
||||
die();
|
||||
die("Erreur 'marques_pays' : ".mysql_error().EOL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -339,7 +356,7 @@ class MMarques {
|
||||
echo "Erreur 'marques_priorite' : ".mysql_error().EOL;
|
||||
print_r($tabInsert);
|
||||
print_r($tabMarque['priorite']);
|
||||
die();
|
||||
die("Erreur 'marques_priorite' : ".mysql_error().EOL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -354,7 +371,7 @@ class MMarques {
|
||||
echo "Erreur 'marques_histo' : ".mysql_error().EOL;
|
||||
print_r($tabInsert);
|
||||
print_r($tabMarque['historique']);
|
||||
die();
|
||||
die("Erreur 'marques_histo' : ".mysql_error().EOL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -459,10 +476,10 @@ class MMarques {
|
||||
'dateInsert'=> date('YmdHis'),
|
||||
);
|
||||
$ret=$this->iDb->insert('infos_bopi', $tabInsert);
|
||||
if (!$ret && mysql_errno()<>1062) die(mysql_error());
|
||||
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);
|
||||
if (!$ret && mysql_errno()<>1062) die(mysql_error());
|
||||
if (!$ret && mysql_errno()<>1062) die("Erreur 'infos_bopi' 1 : ".mysql_error().EOL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1758,13 +1775,13 @@ class MMarques {
|
||||
}
|
||||
|
||||
private function partSaveSession() {
|
||||
$fp=fopen('/tmp/php_rncs_session.id', 'w');
|
||||
$fp=fopen(REP_TEMP.'php_rncs_session.id', 'w');
|
||||
fwrite($fp,$this->wrncsrv2.'^'.$this->timeOut.'^'.$this->curPage.'^'.$this->siren.'^'.$this->url.'^'.$this->referer);
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
private function partGetSession() {
|
||||
$strTmp=@file_get_contents('/tmp/php_rncs_session.id');
|
||||
$strTmp=@file_get_contents(REP_TEMP.'php_rncs_session.id');
|
||||
if ($strTmp) {
|
||||
$tabTmp=explode('^', $strTmp);
|
||||
$this->wrncsrv2=$tabTmp[0];
|
||||
|
@ -261,6 +261,18 @@ class MTel {
|
||||
return $tabRet;
|
||||
}
|
||||
|
||||
function getOperateur($tel) {
|
||||
/*http://www.arcep.fr/index.php?id=interactivenumeros
|
||||
Données POST:
|
||||
ctrl_flag[do_ctrl]
|
||||
bloc[017543]
|
||||
CMD[RESULTS_NUMEROTATION]
|
||||
http://www.arcep.fr/index.php?id=interactivenumeros&CMD=DETAILS_SOC&uid=158757&bloc=017543&cHash=0c29e39859
|
||||
http://www.arcep.fr/uploads/tx_gsavis/05-0233.pdf
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
@ -995,8 +995,12 @@ Liste des dates de clotures :
|
||||
// Annonces BODACC Cessation d'activité avec dissolution
|
||||
$tabDepotCpt=$iInsee->getAnnoncesLegales($siren, 0, array(2202,2203,2204,2210,2212), false);
|
||||
foreach ($tabDepotCpt as $iDep=>$depot) {
|
||||
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Annonce de Dissolution avec Bilan A", "Dernier Bilan = $BILANDATE et Annonce de dissolution = ".$depot['DateParution']);
|
||||
if ($BILANDATE<str_replace('-','',$depot['DateParution'])*1) {
|
||||
$ANNONCEDISSODATE=$depot['DateParution'];
|
||||
$ANNONCEDISSO=true;
|
||||
}// else
|
||||
// sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Annonce de Dissolution avec Bilan B", "Dernier Bilan = $BILANDATE et Annonce de dissolution = ".$depot['DateParution']);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1131,6 +1135,102 @@ Liste des dates de clotures :
|
||||
}
|
||||
// Le SIREN est éliminé du scoring
|
||||
$ELIMINE=true;
|
||||
} elseif ($tabIdentite['SituationJuridique']=='PL') {
|
||||
$ANNONCEPCHISTO=true;
|
||||
$ELIMINE=false;
|
||||
$ANNONCEPC='Plan de continuation/redressement';
|
||||
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'P', false);
|
||||
foreach ($tabProCol as $iProcol=>$procol) {
|
||||
foreach ($procol['evenements'] as $even) {
|
||||
if ($iProcol==0) $ANNONCEPC=$even['LibEven'];
|
||||
switch ($even['CodeEven']*1) {
|
||||
case 1300: // Conversion Redressement Judiciaire en Liquidation Judiciaire
|
||||
case 1301: // Ouverture Liquidation Judiciaire
|
||||
case 1302: // Ouverture Liquidation Judiciaire Simplifiée
|
||||
case 1305: // Liquidation Judiciaire
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1303: // Ouverture Liquidation Judiciaire sur résolution du plan
|
||||
case 1304: // Réouverture Liquidation Judiciaire
|
||||
case 1306: // Liquidation Judiciaire simplifiée
|
||||
case 1307: // Conversion sauvegarde en Liquidation Judiciaire
|
||||
case 1311: // Liquidation Judiciaire par extension au(x) gérant(s)
|
||||
case 1312: // Liquidation Judiciaire avec continuation d'exploitation
|
||||
case 1313: // Liquidation Judiciaire sans remise des accessoires
|
||||
case 1417: // Jugement d'extension de liquidation judiciaire
|
||||
|
||||
// Annonce de liquidation judiciaire
|
||||
$ANNONCELJ=true;
|
||||
|
||||
// Date de l'annonce LJ
|
||||
$ANNONCELJDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1200: // Redressement Judiciaire
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1201: // Conversion sauvegarde en Redressement Judiciaire
|
||||
case 1211: // Redressement Judiciaire par extension au(x) gérant(s)
|
||||
case 1212: // Réforme de Liquidation Judiciaire en Redressement Judiciaire
|
||||
case 1418: // Jugement d'extension d'une procédure de redressement judiciaire
|
||||
// Annonce de redressement judiciaire
|
||||
$ANNONCERJ=true;
|
||||
// Date de l'annonce RJ
|
||||
$ANNONCERJDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1100: // Ouverture sauvegarde
|
||||
if (substr($procol['dateFinObservation'],0,4)*1>0) $ANNONCEPC_OBS=true;
|
||||
case 1419: // Jugement d'extension d'une procédure de sauvegarde
|
||||
// Annonce de sauvegarde
|
||||
$ANNONCESV=true;
|
||||
// Date de l'annonce Sauv
|
||||
$ANNONCESVDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
$TRIBUNAL_PROCOL=strtr($procol['Tribunal'],array('TC '=>'Tribunal de Commerce de '));
|
||||
break;
|
||||
case 1407: // Modification de plan
|
||||
case 1408: // Modification du plan de cession
|
||||
case 1409: // Modification du plan de continuation
|
||||
case 1415: // Prolongement du plan cession
|
||||
// Modif de plan d'apurement
|
||||
$PLANMODIF=true;
|
||||
$ANNONCEPLANMODIFDATE=$ANNONCEDATE=$procol['dateJugement'];
|
||||
break;
|
||||
|
||||
case 1411: // Arrêt du plan de cession
|
||||
case 1414: // Arrêt du plan de redressement
|
||||
$ANNONCEPLANFINDATE=$procol['dateFinObservation'];
|
||||
if (substr($ANNONCEPLANFINDATE,0,4)*1==0) $ANNONCEPLANFINDATE='';
|
||||
/** @todo $ANNONCEPLANDUREE='';
|
||||
**/
|
||||
case 1412: // Arrêt du plan de cession partielle
|
||||
case 1413: // Arrêt du plan de continuation
|
||||
case 1101: // Jugement arrêtant plan de sauvegarde
|
||||
$PLAN=true; // Présence d'une annonce de plan d'apurement
|
||||
if ($even['CodeEven']*1==1411) $ANNONCEPLAN='cession';
|
||||
elseif ($even['CodeEven']*1==1412) $ANNONCEPLAN='cession partielle';
|
||||
elseif ($even['CodeEven']*1==1413) $ANNONCEPLAN='continuation';
|
||||
elseif ($even['CodeEven']*1==1414) $ANNONCEPLAN='redressement';
|
||||
elseif ($even['CodeEven']*1==1101) $ANNONCEPLAN='sauvegarde';
|
||||
|
||||
// Date de l'annonce de plan
|
||||
$ANNONCEPLANDATE=$procol['dateJugement'];
|
||||
$ANNONCEDATE=$ANNONCEPCDATE=$procol['dateJugement'];
|
||||
break;
|
||||
case 1600: // Interdictions et Faillites
|
||||
case 1601:
|
||||
case 1610:
|
||||
case 1611:
|
||||
$ANNONCEINTERDITDATE=$procol['dateJugement'];
|
||||
break;
|
||||
case 1202: // Renouvellement de la période d'observation
|
||||
$ANNONCEPC_OBS=true;
|
||||
//1430, Jugement autorisant la poursuite d'activité
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$tabProCol=$iInsee->getAnnoncesLegales($siren, 0, 'PH', false);
|
||||
if (count($tabProCol)>0) $ANNONCEPCHISTO=true;
|
||||
@ -1959,6 +2059,15 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
|
||||
else $noteSolvMax=56;
|
||||
}
|
||||
|
||||
if ($tabIdentite['SituationJuridique']=='PL') {
|
||||
$SCOREDIRI-=20;
|
||||
$SCORECONF+=10;
|
||||
if (($NBBILAN==0 || $BILANVIEUX) && $CAPITAL<750000) $noteSolvMax=39;
|
||||
elseif (($NBBILAN==0 || $BILANVIEUX) && $CAPITAL<1500000) $noteSolvMax=41;
|
||||
elseif (($NBBILAN==0 || $BILANVIEUX)) $noteSolvMax=48;
|
||||
else $noteSolvMax=51;
|
||||
}
|
||||
|
||||
if ($noteSolvabilite>$noteSolvMax) $noteSolvabilite=$noteSolvMax;
|
||||
$timer['privileges']=microtime(true);
|
||||
|
||||
|
@ -893,7 +893,7 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
|
||||
'naissance_nom' => 'nom',
|
||||
'naissance_date' => 'dirDateNaissAAAA',
|
||||
'naissance_lieu' => 'ville');
|
||||
afficheDB($resSphinx, $formR, $form2crit, 'rncs_dirigeants', $base2form,
|
||||
afficheDB($resSphinx, $formR, $form2crit, 'dirigeants', $base2form,
|
||||
$deb, $nbRep);
|
||||
}
|
||||
|
||||
@ -913,10 +913,167 @@ function rechercheDir(&$formR, $deb, $nbRep, $max)
|
||||
}
|
||||
|
||||
$requeteDB =
|
||||
'select e.id, d.nom, d.prenom, d.fonction_lib '.
|
||||
'select e.id, d.nom, d.prenom, l.libelle AS fonction_lib '.
|
||||
// d.rs, d.nomUsage, d.naissance_date, d.naissance_lieu,
|
||||
' from rncs_dirigeants d, etablissements e'.
|
||||
' where d.siren = e.siren and e.siege = 1 and (d.id='.
|
||||
' from dirigeants d, etablissements e, bodacc_fonctions l'.
|
||||
' where d.siren=e.siren and d.fonction_code=l.codeFct AND e.siege=1 and (d.id='.
|
||||
$resSphinx['matches'][0]['id'];
|
||||
for ($i = 1; $i + $deb < $resSphinx['total'] && $i < $nbRep; ++$i) {
|
||||
$requeteDB .= ' or d.id='.$resSphinx['matches'][$i]['id'];
|
||||
}
|
||||
$requeteDB .= ')';
|
||||
$requeteDB .= ' GROUP BY d.siren, d.id';
|
||||
$requeteDB .= ' ORDER BY e.rang DESC, e.actif DESC, e.siege DESC, e.id ASC';
|
||||
debugln();
|
||||
debugln("requeteDB='$requeteDB'");
|
||||
$resDB = $gDatabaseJO->query($requeteDB);
|
||||
|
||||
// Reponse
|
||||
$ligneDir = array();
|
||||
$ligne = $resDB->fetch_assoc();
|
||||
$requeteDB = 'select id, CONCAT(siren,nic) AS siret, siren, nic, siege, '.
|
||||
'raisonSociale, sigle, enseigne, adr_num, adr_typeVoie, adr_libVoie, '.
|
||||
'adr_comp, adr_cp, adr_ville, tel, fax, cj, actif, ape_etab, '.
|
||||
'ape_entrep from etablissements where id='.$ligne['id'];
|
||||
$ligneDir[0] = array('id' => $ligne['id'],
|
||||
'nom' => $ligne['nom'],
|
||||
'prenom' => $ligne['prenom'],
|
||||
'fonction_lib' => $ligne['fonction_lib']);
|
||||
for ($i = 1; $i < $resDB->num_rows; ++$i) {
|
||||
$ligne = $resDB->fetch_assoc();
|
||||
$requeteDB .= ' or id='.$ligne['id'];
|
||||
$ligneDir[$i] = array('id' => $ligne['id'],
|
||||
'nom' => $ligne['nom'],
|
||||
'prenom' => $ligne['prenom'],
|
||||
'fonction_lib' => $ligne['fonction_lib']);
|
||||
}
|
||||
$requeteDB .= ' ORDER BY rang DESC, actif DESC, siege DESC, id ASC';
|
||||
debugln();
|
||||
debugln("requeteDB='$requeteDB'");
|
||||
$resDB = $gDatabaseJO->query($requeteDB);
|
||||
|
||||
return reponse($resSphinx, $resDB, $criteres, $total_time, $formR,
|
||||
$form2crit, $deb, $ligneDir);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------- //
|
||||
// Recherche par actionnaire
|
||||
// --------------------------------------------------------------------------- //
|
||||
function rechercheAct(&$formR, $deb, $nbRep, $max)
|
||||
{
|
||||
global $gDatabaseJO;
|
||||
|
||||
// Duree totale
|
||||
$total_time = 0;
|
||||
|
||||
$sphinx = clientSphinx($formR);
|
||||
if ($sphinx == false) {
|
||||
return array('nbReponses' => 0,
|
||||
'nbReponsesTotal' => 0,
|
||||
'duree' => $total_time,
|
||||
'erreur' => 'Formulaire vide');
|
||||
}
|
||||
/*
|
||||
id, Siren1, RaisonSociale, Siren2,
|
||||
actif, dateLien, as dateMaj,
|
||||
source, PminNum, MajMin, PpPm, Pays
|
||||
*/
|
||||
$criteresSphinx = array('nom' => '@nom',
|
||||
//'prenom' => '@prenom',
|
||||
//'ville' => '@naissance_lieu'
|
||||
);
|
||||
|
||||
$form2crit = array('nom' => 'N',
|
||||
'prenom' => 'P',
|
||||
'dirDateNaissAAAA' => 'A',
|
||||
'dirDateNaissMM' => 'M',
|
||||
'dirDateNaissJJ' => 'J',
|
||||
'departement' => 'D',
|
||||
'ville' => 'V');
|
||||
|
||||
$index = 'dir';
|
||||
$mode = SPH_MATCH_EXTENDED2;
|
||||
$pass = 0;
|
||||
$criteres = 'NPAMJDV';
|
||||
initSphinx($sphinx, $mode, $pass, $deb, $nbRep, $max);
|
||||
|
||||
while (empty($criteres) == false) {
|
||||
debugln("criteres: $criteres");
|
||||
filtreDateNaiss($formR, $criteres, $sphinx);
|
||||
filtreAdresse($formR, $criteres, $sphinx);
|
||||
$requete_sphinx = '';
|
||||
foreach ($formR as $label => $valeur) {
|
||||
if (empty($valeur) == false &&
|
||||
isset($criteresSphinx[$label]) == true &&
|
||||
strstr($criteres, $form2crit[$label]) != false) {
|
||||
if ($label == 'prenom') {
|
||||
$requete_sphinx .= $criteresSphinx[$label].
|
||||
' "'.$valeur.'"/1 ';
|
||||
} else {
|
||||
$requete_sphinx .= $criteresSphinx[$label].' '.$valeur.' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
debugln("requete='$requete_sphinx'");
|
||||
$sphinx->SetSortMode(SPH_SORT_EXTENDED, 'actif DESC');
|
||||
$resSphinx = $sphinx->Query($requete_sphinx, $index);
|
||||
if ($resSphinx != false) {
|
||||
$total_time += $resSphinx['time'];
|
||||
}
|
||||
if ($resSphinx != false && $resSphinx['total'] > 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
$criteres = criteresDir($criteres, $index);
|
||||
$sphinx->resetFilters();
|
||||
}
|
||||
|
||||
afficheStatusSphinx($sphinx, $resSphinx);
|
||||
if ($resSphinx == false) {
|
||||
return array('nbReponses' => 0,
|
||||
'nbReponsesTotal' => 0,
|
||||
'duree' => $total_time,
|
||||
'erreur' => $sphinx->GetLastError(),
|
||||
'criteres' => $criteres);
|
||||
}
|
||||
if ($resSphinx['total'] == 0) {
|
||||
return array('nbReponses' => 0,
|
||||
'nbReponsesTotal' => 0,
|
||||
'duree' => $total_time,
|
||||
'criteres' => $criteres);
|
||||
}
|
||||
|
||||
if (DEBUG) {
|
||||
$base2form = array('adr_dep' => 'departement',
|
||||
'nom' => 'nom',
|
||||
'prenom' => 'prenom',
|
||||
'naissance_nom' => 'nom',
|
||||
'naissance_date' => 'dirDateNaissAAAA',
|
||||
'naissance_lieu' => 'ville');
|
||||
afficheDB($resSphinx, $formR, $form2crit, 'dirigeants', $base2form,
|
||||
$deb, $nbRep);
|
||||
}
|
||||
|
||||
// Recherche des sieges
|
||||
if ($gDatabaseJO == false) {
|
||||
return array('nbReponses' => 0,
|
||||
'nbReponsesTotal' => $resSphinx['total'],
|
||||
'duree' => $total_time,
|
||||
'erreur' => 'Base inaccessible');
|
||||
}
|
||||
|
||||
if (isset($resSphinx['matches']) == false) {
|
||||
return array('nbReponses' => 0,
|
||||
'nbReponsesTotal' => $resSphinx['total'],
|
||||
'duree' => $total_time,
|
||||
'erreur' => 'Aucun résultat');
|
||||
}
|
||||
|
||||
$requeteDB =
|
||||
'select e.id, d.nom, d.prenom, l.libelle AS fonction_lib '.
|
||||
// d.rs, d.nomUsage, d.naissance_date, d.naissance_lieu,
|
||||
' from dirigeants d, etablissements e, bodacc_fonctions l'.
|
||||
' where d.siren=e.siren and d.fonction_code=l.codeFct AND e.siege=1 and (d.id='.
|
||||
$resSphinx['matches'][0]['id'];
|
||||
for ($i = 1; $i + $deb < $resSphinx['total'] && $i < $nbRep; ++$i) {
|
||||
$requeteDB .= ' or d.id='.$resSphinx['matches'][$i]['id'];
|
||||
@ -1410,6 +1567,8 @@ function recherche(&$formR, $deb = 0, $nbRep = 20, $max = 1000)
|
||||
return rechercheEnt($formR, $deb, $nbRep, $max);
|
||||
} else if ($formR['type'] == 'dir') {
|
||||
return rechercheDir($formR, $deb, $nbRep, $max);
|
||||
} else if ($formR['type'] == 'act') {
|
||||
return rechercheAct($formR, $deb, $nbRep, $max);
|
||||
} else {
|
||||
debugln('Type de recherche inconnu');
|
||||
return array('nbReponses' => 0,
|
||||
|
Loading…
Reference in New Issue
Block a user