2013-11-05 11:18:30 +00:00
< ? php
2014-09-12 14:57:26 +00:00
require_once 'framework/fwk.php' ;
require_once 'framework/mail/sendMail.php' ;
require_once 'Metier/insee/classMInsee.php' ;
require_once 'Metier/insee/classMSirene.php' ;
require_once 'Metier/partenaires/classMBilans.php' ;
require_once 'Metier/partenaires/classMBourse.php' ;
require_once 'Metier/partenaires/classMTva.php' ;
require_once 'Metier/partenaires/classMMap.php' ;
require_once 'Metier/partenaires/classMGreffes.php' ;
require_once 'Metier/partenaires/classMPrivileges.php' ;
require_once 'Metier/scores/classMFinancier.php' ;
require_once 'Metier/scores/classMSolvabilite.php' ;
2014-05-24 16:57:17 +00:00
require_once __DIR__ . '/Types.php' ;
2013-11-05 11:18:30 +00:00
2014-05-24 16:57:17 +00:00
class Interne extends Scores_Ws_Server
2013-11-05 11:18:30 +00:00
{
/**
* Retourne le détails des privilèges
* @ param string $siren
* @ param array $tabTypes
* @ return PrivilegesDetailReturn
*/
public function getPrivilegesDetail ( $siren , $tabTypes = array ( '03' , '04' ))
{
$this -> authenticate ();
//Initialisation
if ( empty ( $tabTypes )) $tabTypes = array ( '03' , '04' );
debugLog ( 'I' , " Liste des privilèges detail sur $siren " . print_r ( $tabTypes , true ), __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$iPriv = new MPrivileges ();
$ret = $iPriv -> getPrivilegesDetail ( $siren , $tabTypes ); //@todo : date
$tabRet = array ();
if ( count ( $ret ) > 0 ) {
foreach ( $ret as $item ) {
$privileges = new PrivilegesDetail ();
$privileges -> numDebiteur = $item [ 'numDebiteur' ];
$privileges -> greffe = $item [ 'greffe' ];
$privileges -> greffeLib = $item [ 'greffeLib' ];
$privileges -> dateEven = $item [ 'dateEven' ];
$privileges -> dateFraiche = $item [ 'dateFraiche' ];
$privileges -> dateSD = $item [ 'dateSD' ];
$privileges -> insType = $item [ 'insType' ];
$privileges -> insTypeLib = $item [ 'insTypeLib' ];
$privileges -> insNum = $item [ 'insNum' ];
$privileges -> insDate = $item [ 'insDate' ];
$privileges -> insDateEch = $item [ 'insDateEch' ];
$privileges -> insObjet = $item [ 'insObjet' ];
$privileges -> insMontant = $item [ 'insMontant' ];
$privileges -> insDev = $item [ 'insDev' ];
$privileges -> insDateFin = $item [ 'insDateFin' ];
$privileges -> radDate = $item [ 'radDate' ];
$privileges -> radMention = $item [ 'radMention' ];
$privileges -> radPartiel = $item [ 'radPartiel' ];
$privileges -> radPartMt = $item [ 'radPartMt' ];
$privileges -> radDev = $item [ 'radDev' ];
$privileges -> creNom = $item [ 'creNom' ];
$privileges -> creAdresse1 = $item [ 'creAdresse1' ];
$privileges -> creAdresse2 = $item [ 'creAdresse2' ];
$privileges -> creAdresse3 = $item [ 'creAdresse3' ];
$privileges -> creCP = $item [ 'creCP' ];
$privileges -> creVille = $item [ 'creVille' ];
$privileges -> crePays = $item [ 'crePays' ];
$privileges -> creAutres = $item [ 'creAutres' ];
$tabRet [] = $privileges ;
}
}
$this -> wsLog ( 'privdetail' , $siren , join ( ',' , $tabTypes ));
$output = new PrivilegesDetailReturn ();
$output -> result = $tabRet ;
return $output ;
}
/**
* Retourne les privilèges cumulés
* @ param string $siren
* @ param array $tabTypes
* @ return PrivilegesCumulReturn
*/
public function getPrivilegesCumul ( $siren , $tabTypes = array ( '03' , '04' ))
{
$this -> authenticate ();
//Initialisation
if ( empty ( $tabTypes )) $tabTypes = array ( '03' , '04' );
debugLog ( 'I' , " Liste des privilèges cumul sur $siren " . print_r ( $tabTypes , true ), __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$iPriv = new MPrivileges ();
$ret = $iPriv -> getPrivilegesCumul ( $siren , $tabTypes );
$tabRet = array ();
if ( isset ( $ret [ '03' ]) && count ( $ret [ '03' ] > 0 )){
$value = $ret [ '03' ];
$priv = new PrivilegesCumul ();
$priv -> insType = '03' ;
$priv -> nb = $value [ 'nb' ];
$priv -> insTypeLib = $value [ 'insTypeLib' ];
$priv -> dateFraiche = $value [ 'dateFraiche' ]; //@todo : date
$priv -> dateDerInsc = $value [ 'dateDerInsc' ]; //@todo : date
$priv -> nomDerCre = $value [ 'nomDerCre' ];
$priv -> numDebiteur = $value [ 'numDebiteur' ];
$priv -> greffeLib = $value [ 'greffeLib' ];
$priv -> dateMajSD = $value [ 'dateMajSD' ]; //@todo : date
$priv -> insCumul = $value [ 'insCumul' ];
$tabRet [] = $priv ;
}
if ( isset ( $ret [ '04' ]) && count ( $ret [ '04' ] > 0 )){
$value = $ret [ '04' ];
$priv = new PrivilegesCumul ();
$priv -> insType = '04' ;
$priv -> nb = $value [ 'nb' ];
$priv -> insTypeLib = $value [ 'insTypeLib' ];
$priv -> dateFraiche = $value [ 'dateFraiche' ]; //@todo : date
$priv -> dateDerInsc = $value [ 'dateDerInsc' ]; //@todo : date
$priv -> nomDerCre = $value [ 'nomDerCre' ];
$priv -> numDebiteur = $value [ 'numDebiteur' ];
$priv -> greffeLib = $value [ 'greffeLib' ];
$priv -> dateMajSD = $value [ 'dateMajSD' ]; //@todo : date
$priv -> insCumul = $value [ 'insCumul' ];
$tabRet [] = $priv ;
}
$this -> wsLog ( 'privcumul' , $siren , print_r ( $tabTypes , 1 ));
$output = new PrivilegesCumulReturn ();
$output -> result = $tabRet ;
return $output ;
}
/**
* Liste les mandataires correspondant à un nom donné
* @ param mixed $codeTribunal Identifiants BODACC du tribunal ou tableau d 'Identifiants numériques des cours d' appel
* @ param array $type Type de mandataire ( A ) dministrateur , ( M ) andataire , ( O ) ppositions , ( N ) otaires , a ( V ) ocat
* @ param int $cpDep Code postal ou département du mandataire
* @ return SearchMandatairesReturn
*/
public function searchMandataires ( $nom , $type = array ( 'A' , 'M' ), $cpDep = 0 )
{
$this -> authenticate ();
//Initialisation
if ( empty ( $type )) $type = array ( 'A' , 'M' );
if ( empty ( $cpDep )) $cpDep = 0 ;
$tabRet = array ();
debugLog ( 'I' , " Recherche de Mandataires ' $nom ' (Dep= $cpDep ) " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$iInsee = new MInsee ();
$tabTmp = $iInsee -> searchMandataires ( $nom , true , $type , $cpDep );
foreach ( $tabTmp as $i => $mand )
{
$mandataire = new SearchMandataire ();
$mandataire -> id = 'm' . $i ;
$mandataire -> mand = $mand ;
$tabRet [] = $mandataire ;
}
$output = new SearchMandatairesReturn ();
$output -> result = $tabRet ;
return $output ;
}
/**
* Retourne la liste des tribunaux ou Compétences demandées
* @ param array | string $tabTypes Tableau des types de Compétences demandés 'C' : Commerce , 'I' : Instance , 'G' : TGI , 'A' : Préfectures , 'B' : Sous - préf , 'D' : Tribunal Administratif , 'H' : Prud 'hommes, ' L ': Cour d' Appel , 'M' : Tribunal Mixte , 'O' : CCI , 'V' : Cour Administrative d ' Appel
* @ return TribunauxReturn
**/
public function getTribunaux ( $tabTypes )
{
$this -> authenticate ();
//Initialisation
if ( empty ( $tabTypes )) $tabTypes = array ();
if ( is_string ( $tabTypes )) $tabTypes = ( array ) $tabTypes ;
$iBodacc = new MBodacc ();
debugLog ( 'I' , " Liste des tribunaux demandées " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$tabTmp = $iBodacc -> getListeTribunaux ();
//@todo : Retourner liste en ordre alphabétique
$tabRet = array ();
if ( count ( $tabTypes ) == 0 ) {
foreach ( $tabTmp as $i => $tribunal ){
$tri = new Tribunal ();
$tri -> code = $i ;
$tri -> nom = $tribunal [ 'nom' ];
$tabRet [] = $tri ;
}
} else {
foreach ( $tabTmp as $i => $tribunal ){
$type = substr ( $i , - 1 );
if ( in_array ( $type , $tabTypes ) ){
$tri = new Tribunal ();
$tri -> code = $i ;
$tri -> nom = $tribunal [ 'nom' ];
$tabRet [] = $tri ;
}
}
}
$this -> wsLog ( 'tribunaux' , '' , print_r ( $tabTypes , 1 ));
$output = new TribunauxReturn ();
$output -> result = $tabRet ;
return $output ;
}
/**
* Enregistre une action utilisateur pour la facturation
* @ param string $page
* @ param string $siret
* @ param int $id
* @ param string $ref
* @ return void
*/
public function setLog ( $page , $siret , $id = 0 , $ref = '' )
{
$this -> authenticate ();
//Initialisation
if ( empty ( $id )) $id = 0 ;
if ( empty ( $ref )) $ref = '' ;
if ( $id != 0 ) {
$ref2 = '' . $id . '/' . $ref ;
} else {
$ref2 = $ref ;
}
$this -> wsLog ( $page , $siret , $ref2 );
debugLog ( 'I' , " Insertion d'un log pour la page $page $siret $ref2 " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
}
/**
* Récupère le mandataire par son id
* @ param int $idMand Identifiant du mandataire
* @ return MandataireReturn
*/
public function getMandataire ( $idMand )
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
debugLog ( 'I' , " Donne le Mandataires correspondant à $idMand " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
require_once 'Metier/insee/classMInsee.php' ;
$iInsee = new MInsee ();
$tabRet = $iInsee -> getMandataire ( $idMand );
$mandataire = new MandataireDetail ();
$mandataire -> Nom = $tabRet [ 'Nom' ];
$mandataire -> Prenom = $tabRet [ 'Prenom' ];
$mandataire -> tribunal = $tabRet [ 'tribunal' ];
$mandataire -> adresse = $tabRet [ 'adresse' ];
$mandataire -> adresseComp = $tabRet [ 'adresseComp' ];
$mandataire -> ville = $tabRet [ 'ville' ];
$mandataire -> email = $tabRet [ 'email' ];
$mandataire -> web = $tabRet [ 'web' ];
$mandataire -> contact = $tabRet [ 'contact' ];
$output = new MandataireReturn ();
$output -> error = $error ;
$output -> result = $mandataire ;
return $output ;
}
/**
* Liste les mandataires compétentes pour une cours d ' appel donnée
* @ param mixed $codeTribunal Identifiants BODACC du tribunal ou tableau d 'Identifiants numériques des cours d' appel
* @ param array $type Type de mandataire ( A ) dministrateur , ( M ) andataire , ( O ) ppositions , ( N ) otaires , a ( V ) ocat
* @ return MandatairesReturn
*/
public function getMandataires ( $codeTribunal = 0 , $type = array ( 'A' , 'M' ))
{
$this -> authenticate ();
//Initialisation
$iInsee = new MInsee ();
$error = new ErrorType ();
$trib = serialize ( $codeTribunal );
debugLog ( 'I' , " Liste des Mandaitaires ou Administrateur du Tribunal/Cours d'Appel $trib demandé " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
if ( ! is_array ( $codeTribunal ) && strlen ( $codeTribunal ) > 3 && $codeTribunal * 1 == 0 )
{
// $codeTribunal est un identifiant de tribunal
$iBodacc = new MBodacc ();
$tabTmp = $iInsee -> getMandataires ( array ( $iBodacc -> getTribunalIdCA ( $codeTribunal )), true , $type );
}
elseif ( $codeTribunal * 1 == 0 )
{
// On veut tous les mandataires
$tabTmp = $iInsee -> getMandataires ( array (), true , $type );
}
elseif ( is_array ( $codeTribunal ))
{
// On veut les mandataires d'une CA
$tabTmp = $iInsee -> getMandataires ( $codeTribunal , true , $type );
}
$tabRet = array ();
foreach ( $tabTmp as $i => $mand ){
$mandataire = new Mandataire ();
$mandataire -> id = 'm' . $i ;
$mandataire -> mand = $mand ;
$tabRet [] = $mandataire ;
}
$output = new MandatairesReturn ();
$output -> error = $error ;
$output -> result = $tabRet ;
return $output ;
}
/**
* Retourne la liste des conventions
* @ param string $siren
* @ return ListeConventionsReturn
*/
public function getListeConventions ( $siren )
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
$tabRet = array ();
debugLog ( 'I' , " Liste des conventions demandée pour le siren $siren " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
if ( strlen ( $siren ) <> 9 ){
debugLog ( 'W' , " Siren/Siret $siren incorrect " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$error -> errnum = 102 ;
$error -> errmsg = 'Siren Siret inexistant' ;
} elseif ( $siren * 1 == 0 ){
debugLog ( 'W' , " Siren $siren inexistant " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$error -> errnum = 102 ;
$error -> errmsg = 'Siren inexistant' ;
} else {
$iInsee = new MInsee ();
$tabIdentite = $iInsee -> getIdentiteEntreprise ( $siren );
if ( empty ( $tabIdentite ) && isset ( $tabIdentite [ 'erreur' ]) &&
$tabIdentite [ 'erreur' ] <> '' ){
debugLog ( 'W' , " Siren $siren non présent en base " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$error -> errnum = 102 ;
$error -> errmsg = 'Siren inexistant' ;
} else {
$naf = $tabIdentite [ 'NafEnt' ];
$trancheEffectif = $tabIdentite [ 'EffEnTr' ];
$effectif = $tabIdentite [ 'Effectif' ];
$fj = $tabIdentite [ 'entreprise' ][ 'FJCodeEntrep' ];
$isolv = new MSolvabilite ( $siren , $naf , $trancheEffectif ,
$effectif , $tabIdentite [ 'CP' ], $fj , $tabIdentite [ 'Capital' ],
$tabIdentite [ 'CapitalDev' ], $tabIdentite [ 'DateCreaEn' ],
$tabIdentite [ 'DateCreaEt' ]
);
$noteStructure = $isolv -> getSolvabilite ();
$naf4 = $isolv -> getNaf4 ( $naf );
$tabTmp = $iInsee -> listeConventions ( $naf4 , $tabIdentite [ 'Dept' ]);
foreach ( $tabTmp as $conv )
{
$convention = new Convention ();
$convention -> idCC = $conv [ 'id CC' ];
$convention -> nomCC = $conv [ 'nom CC' ];
$convention -> infoCC = $conv [ 'infoCC' ];
$convention -> editorCC = $conv [ 'editeur CC' ];
$convention -> nbPageCC = $conv [ 'nb page CC' ];
$convention -> isbnCC = $conv [ 'isbn CC' ];
$convention -> dateCC = $conv [ 'date edition CC' ];
$convention -> joCCmaj = $conv [ 'joCCmaj' ];
$tabRet [] = $convention ;
}
$this -> wsLog ( 'conventions' , $siren );
}
}
$output = new ListeConventionsReturn ();
$output -> error = $error ;
$output -> result = $tabRet ;
return $output ;
}
/**
* Donne la cours d 'appel d' un tribunal par son code
* @ param string $codeTribunal Code BODACC sur 6 caractères du tribunal
* @ return int
**/
public function getIdCoursAppel ( $codeTribunal )
{
$this -> authenticate ();
$iBodacc = new MBodacc ();
return $iBodacc -> getTribunalIdCA ( $codeTribunal );
}
/**
* Récupère le contenu d ' une annonce issue de la collecte
* @ param string $idAnn
* @ param string $siret
* @ return AnnonceCollecteReturn
*/
public function getAnnonceCollecte ( $idAnn , $siret )
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
$annonceCollecte = new AnnonceCollecte ();
$siren = substr ( $siret , 0 , 9 ) * 1 ;
if ( ! $this -> checkEdition ()) {
$error -> errnum = 0 ;
$error -> errmsg = 'Code Client Incorrect' ;
} else {
$iDb = new WDB ();
debugLog ( 'I' , " Lecture de l'annonce collectée n° $idAnn ( $siret ) " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$idAnn = preg_replace ( '/^0\./' , '' , '' . $idAnn ) * 1 ;
if ( $idAnn > 0 )
{
$res = $iDb -> select ( 'annonces' ,
'id, siren, sirenValide, typeEven, strEven, raisonSociale, adresse, codePostal, ville, dateJugement, dateCessationPaiement, dateEffetFinP, numero, inter1type, inter1id, inter1nom, inter2type, inter2id, inter2nom, inter3type, inter3id, inter3nom, inter4type, inter4id, inter4nom, tribunal, montant, actionsNb, complement, infosBrutes, nouvActivite, nouvDir, nouvAdr, nouvFJ, annonce, source, parutionIdJal, parutionNum, dateSource, idSaisie, idAnnonce, dateInsert' ,
" id= $idAnn " , false , MYSQL_ASSOC
);
if ( count ( $res ) > 0 )
{
$ann = $res [ 0 ];
$annonceCollecte -> id = $ann [ 'id' ];
$annonceCollecte -> siren = $ann [ 'siren' ];
$annonceCollecte -> raisonSociale = $ann [ 'raisonSociale' ];
$annonceCollecte -> adresse = $ann [ 'adresse' ];
$annonceCollecte -> codePostal = $ann [ 'codePostal' ];
$annonceCollecte -> ville = $ann [ 'ville' ];
$annonceCollecte -> dateJugement = $ann [ 'dateJugement' ];
//@todo : Les libellées ne sont pas présent LibEven
$tabEven = array ();
$annonceEvenement = new AnnonceEvenement ();
$annonceEvenement -> CodeEven = $ann [ 'typeEven' ];
$annonceEvenement -> LibEven = '' ;
$tabEven [] = $annonceEvenement ;
if ( ! empty ( $ann [ 'strEven' ])){
foreach ( explode ( ';' , $ann [ 'strEven' ]) as $code )
{
$annonceEvenement = new AnnonceEvenement ();
$annonceEvenement -> CodeEven = $code ;
$annonceEvenement -> LibEven = '' ;
$tabEven [] = $annonceEvenement ;
}
}
$annonceCollecte -> even = $tabEven ;
$annonceCollecte -> dateSource = $ann [ 'dateSource' ];
$annonceCollecte -> dateCessationPaiement = $ann [ 'dateCessationPaiement' ];
$annonceCollecte -> dateEffetFinP = $ann [ 'dateEffetFinP' ];
$annonceCollecte -> tribunal = $ann [ 'tribunal' ];
$annonceCollecte -> numero = $ann [ 'numero' ];
$annonceCollecte -> montant = $ann [ 'montant' ];
$annonceCollecte -> actionsNb = $ann [ 'actionsNb' ];
$annonceCollecte -> inter1type = $ann [ 'inter1type' ];
$annonceCollecte -> inter1id = $ann [ 'inter1id' ];
$annonceCollecte -> inter1nom = $ann [ 'inter1nom' ];
$annonceCollecte -> inter2type = $ann [ 'inter2type' ];
$annonceCollecte -> inter2id = $ann [ 'inter2id' ];
$annonceCollecte -> inter2nom = $ann [ 'inter2nom' ];
$annonceCollecte -> inter3type = $ann [ 'inter3type' ];
$annonceCollecte -> inter3id = $ann [ 'inter3id' ];
$annonceCollecte -> inter3nom = $ann [ 'inter3nom' ];
$annonceCollecte -> complement = $ann [ 'complement' ];
$annonceCollecte -> nouvActivite = $ann [ 'nouvActivite' ];
$annonceCollecte -> nouvDir = $ann [ 'nouvDir' ];
$annonceCollecte -> nouvAdr = $ann [ 'nouvAdr' ];
$annonceCollecte -> nouvFJ = $ann [ 'nouvFJ' ];
$annonceCollecte -> source = $ann [ 'source' ];
debugLog ( 'I' , " Lecture de l'annonce collectée n° $idAnn ( $siret ) : " . $ann [ 'raisonSociale' ], __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
} else {
$error -> errnum = 1 ;
$error -> errmsg = 'Edition impossible' ;
}
}
else
{
$error -> errnum = 745741 ;
$error -> errmsg = 'Selection impossible' ;
}
}
$output = new AnnonceCollecteReturn ();
$output -> error = $error ;
$output -> result = $annonceCollecte ;
return $output ;
}
/**
* getDevises
* @ param string $codeIsoDevise
* @ return DevisesReturn
*/
public function getDevises ( $codeIsoDevise = '' )
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
if ( empty ( $codeIsoDevise )) $codeIsoDevise = '' ;
debugLog ( 'I' , " Liste des devises ou devise $codeIsoDevise demandée " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$iInsee = new MInsee ();
$tabTmp = $iInsee -> getDevises ( $codeIsoDevise );
$tabRet = array ();
foreach ( $tabTmp as $i => $dev )
{
if ( $i != '' ){
$devise = new Devise ();
$devise -> devIso = $i ;
$devise -> devNom = $dev ;
$tabRet [] = $devise ;
}
}
$output = new DevisesReturn ();
$output -> error = $error ;
$output -> result = $tabRet ;
return $output ;
}
/**
* Retourne la liste des codes devises , libellés , date et valeur
* ( toutes les devises ou une seule )
* @ param string $devise Devise sur 3 lettres ( facultatif )
* @ return DevisesCoursReturn
*/
public function getDeviseCours ( $devise = false )
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
$iDb = new WDB ( 'sdv1' );
if ( $devise ) $strDevise = " AND c.devise=' $devise ' " ;
else $strDevise = '' ;
$tabRet = array ();
$res = $iDb -> select ( 'devise_cours c, devise_liste l' , 'c.devise, l.devNom, max(c.date) as dateChange, c.valeur' , " c.devise=l.devIso $strDevise GROUP BY c.devise ORDER BY c.devise ASC " , false , MYSQL_ASSOC );
foreach ( $res as $tabDev )
{
$devise = new DevisesCours ();
$devise -> codeDevise = $tabDev [ 'devise' ];
$devise -> nomDevise = $tabDev [ 'devNom' ];
$devise -> dateChange = $tabDev [ 'dateChange' ];
$devise -> valeurDevise = $tabDev [ 'valeur' ];
$tabRet [] = $devise ;
}
$output = new DevisesCoursReturn ();
$output -> error = $error ;
$output -> result = $tabRet ;
return $output ;
}
/**
* getMarques
* @ param string $siren
* @ param int $idDepot
* @ return MarquesReturn
*/
public function getMarques ( $siren , $idDepot = 0 )
{
$this -> authenticate ();
$this -> permission ( 'marques' );
debugLog ( 'I' , " Liste des marques déposées pour le siren $siren " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
if ( empty ( $idDepot )) $idDepot = 0 ;
$error = new ErrorType ();
$marques = array ();
require_once 'Metier/partenaires/classMMarques.php' ;
$iMarque = new MMarques ();
$ret = $iMarque -> getMarques ( $siren , $idDepot );
foreach ( $ret as $item )
{
if ( $idDepot == $item [ 'numeroMarque' ]) {
$marque = new Marque ();
$marque -> Marques = $item [ 'nomMarque' ];
$marque -> Perimetre = $item [ 'periMarque' ];
$marque -> Deposant = $item [ 'detailDeposant' ];
$marque -> Depot = $item [ 'numeroMarque' ];
$marque -> Classes = $item [ 'classesMarque' ];
$marque -> ProduitsServices = $item [ 'PS' ];
$marque -> Mandataire = $item [ 'detailMandataire' ];
$marque -> Statut = $item [ 'detailStatut' ];
$marque -> Date = $item [ 'dateDepot' ];
$marque -> Lieu = $item [ 'lieuDepot' ];
$marque -> Historique = $item [ 'histo' ];
$marque -> Img = '' ;
$marque -> Pdf = $item [ 'pdfLink' ];
$marques [] = $marque ;
break ;
} else {
$marque = new Marque ();
$marque -> Marques = $item [ 'nomMarque' ];
$marque -> Perimetre = '' ;
$marque -> Deposant = '' ;
$marque -> Depot = $item [ 'numeroMarque' ];
$marque -> Classes = '' ;
$marque -> Mandataire = '' ;
$marque -> Statut = '' ;
$marque -> Date = $item [ 'dateDepot' ];
$marque -> Lieu = '' ;
$marque -> Img = '' ;
$marque -> Pdf = $item [ 'pdfLink' ];
$marques [] = $marque ;
}
}
$this -> wsLog ( 'marques' , $siren );
$output = new MarquesReturn ();
$output -> error = $error ;
$output -> result = $marques ;
return $output ;
}
/**
* Enter description here ...
* @ param string $siren
* @ param string $piece
* @ param string $type
* @ param integer $visu
* @ param integer $courrier
* @ param string $ref
* @ return PieceReturn
*/
public function getPiece ( $siren , $piece = 'kbis' , $type = '' , $visu = 1 , $courrier = 0 , $ref = '' )
{
$this -> authenticate ();
$this -> permission ( 'kbis' );
set_time_limit ( 400 );
if ( empty ( $piece )) $piece = 'kbis' ;
if ( empty ( $type )) $type = '' ;
if ( empty ( $visu )) $visu = 1 ;
if ( empty ( $courrier )) $courrier = 1 ;
if ( empty ( $ref )) $ref = '' ;
$error = new ErrorType ();
$erreur = false ;
$kbisLocalPDF = DOC_WEB_LOCAL . " kbis/ $piece - $siren .pdf " ;
if ( file_exists ( $kbisLocalPDF )
&& date ( 'Ymd' , filemtime ( $kbisLocalPDF )) == date ( 'Ymd' )
&& filesize ( $kbisLocalPDF ) > 0 ) {
$size = filesize ( $kbisLocalPDF );
$erreur = false ;
$tabNom = array ();
$ficDist = '' ;
$cache = 1 ;
} else {
exec ( " php " . APPLICATION_PATH . " /../batch/getPieces.php $siren $piece > /dev/null & " );
$ficDist = '' ;
$size = $cache = 0 ;
}
// On supprimer l'ancien kbis si trop vieux ou vide
if ( date ( 'Ymd' , filemtime ( $kbisLocalPDF )) <> date ( 'Ymd' )
|| filesize ( $kbisLocalPDF ) == 0 ) {
unlink ( $kbisLocalPDF );
}
$result = new PieceResult ();
$result -> Siren = $siren ;
//@todo : Envoyer vers controlleur
$hostname = 'http://' . $_SERVER [ 'SERVER_NAME' ];
if ( $_SERVER [ 'SERVER_PORT' ] != '80' ){
$hostname .= ':' . $_SERVER [ 'SERVER_PORT' ];
}
$result -> Url = $hostname . '/data/kbis/' . $piece . '-' . $siren . '.pdf' ;
$result -> Taille = $size ;
$result -> Cache = $cache ;
$result -> fichier = $ficDist ;
$this -> wsLog ( 'kbis' , $siren , " $cache / $visu / $courrier / $type / $ref " );
$output = new PieceReturn ();
$output -> error = $error ;
$output -> result = $result ;
return $output ;
}
/**
* Commande de statut association
* @ param InfoCmdAsso $infosCommande
* @ param InfosDemandeur $infosDemandeur
* @ return CmdAssoReturn
*/
public function setCmdAsso ( $infosCommande , $infosDemandeur )
{
$this -> authenticate ();
$this -> permission ( 'actes' );
//Initialisation
$error = new ErrorType ();
$iDb = new WDB ();
$siren = $infosCommande -> siren ;
$idEntreprise = intval ( $infosCommande -> idEntreprise );
$assoNom = $infosCommande -> raisonSociale ;
debugLog ( 'I' , " commandeAsso pour $assoNom ( $siren ) début " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$iInsee = new MInsee ();
$tabIdentite = $iInsee -> getIdentiteLight ( $siren , 0 , $idEntreprise );
$assoSigle = $tabIdentite [ 'Sigle' ];
$assoAdresse = $tabIdentite [ 'Adresse' ] . EOL . $tabIdentite [ 'Adresse2' ];
$assoCP = $tabIdentite [ 'CP' ];
$assoVille = $tabIdentite [ 'Ville' ];
$mail = trim ( $infosDemandeur -> email );
2014-08-06 20:27:01 +00:00
if ( $mail == '' ) $mail = $this -> User -> email ;
2013-11-05 11:18:30 +00:00
$tabInsert = array (
2014-08-06 20:27:01 +00:00
'idUser' => $this -> User -> id ,
2013-11-05 11:18:30 +00:00
'source' => 'asso' ,
2014-08-06 20:27:01 +00:00
'login' => $this -> User -> login ,
2013-11-05 11:18:30 +00:00
'emailCommande' => $mail ,
'siren' => $siren ,
'refUtilisateur' => $infosDemandeur -> reference ,
'refDocument' => serialize ( $infosDemandeur ),
'refCommande' => serialize ( $infosCommande ),
'dateCommande' => DATETIME ,
);
$iDbCrm = new WDB ( 'sdv1' );
$ret = $iDbCrm -> insert ( 'commandes' , $tabInsert , true );
if ( $ret != 0 ) {
sendMail ( 'production@scores-decisions.com' , 'support@scores-decisions.com' ,
" Commande de statuts association pour $assoNom ( $siren ) " ,
" Association : " . EOL . print_r ( $infosCommande , true ) . EOL . EOL .
" Demandeur: " . EOL . print_r ( $infosDemandeur , true ) . EOL . EOL .
" Ref : i " . $ret
);
$result = new CmdAssoDetail ();
$result -> siren = $siren ;
$result -> emailCommande = $mail ;
$result -> dateCommande = DATETIME ;
$result -> refCmd = 'i' . $ret ;
sendMail ( 'production@scores-decisions.com' , $mail ,
" Votre commande de statuts association sur $assoNom ( $siren ) " ,
" Votre demande de statuts sur l'association $assoNom a été prise en compte sous la référence i $ret - " . DATETIME );
$this -> wsLog ( 'commandeAsso' , $siren , 'i' . $ret . '-' . DATETIME );
debugLog ( 'I' , " commandeAsso pour $assoNom ( $siren ) fin " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
} else {
$error -> errnum = 1 ;
$error -> errmsg = 'Erreur' ;
}
$output = new CmdAssoReturn ();
$output -> error = $error ;
$output -> commande = $result ;
return $output ;
}
/**
* Commande d 'une enquête sur une entreprise en France ou à l' Internationale
* @ param InfosCmdEnquete $infosCommande
* @ param InfosDemandeur $infosDemandeur
* @ return CmdEnqueteReturn
**/
public function setCmdEnquete ( $infosCommande , $infosDemandeur )
{
$this -> authenticate ();
$this -> permission ( 'enquetec' );
//Initialisation
$error = new ErrorType ();
$siren = $infosCommande -> siren ;
$mail = trim ( $infosDemandeur -> email );
2014-08-06 20:27:01 +00:00
if ( $mail == '' ) $mail = $this -> User -> email ;
2013-11-05 11:18:30 +00:00
$tabInsert = array (
2014-08-06 20:27:01 +00:00
'idUser' => $this -> User -> id ,
2013-11-05 11:18:30 +00:00
'source' => 'intersud' , // 'greffes', 'asso', 'graydon'
2014-08-06 20:27:01 +00:00
'login' => $this -> User -> login ,
2013-11-05 11:18:30 +00:00
'emailCommande' => $mail ,
'siren' => $siren ,
'refDocument' => serialize ( $infosDemandeur ),
'refCommande' => serialize ( $infosCommande ),
'dateCommande' => DATETIME ,
);
debugLog ( 'I' , " Intersud, début sur $siren " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$messageInfo = print_r ( $infosCommande , 1 ) . EOL . print_r ( $infosDemandeur , 1 ) . EOL ;
2014-08-06 20:27:01 +00:00
$idClient = $this -> User -> idClient ;
2013-11-05 11:18:30 +00:00
$iDbCrm = new WDB ( 'sdv1' );
$rep = $iDbCrm -> select ( 'clients' , ' nom, racineLogin, InterSudLogin, InterSudPass' , " id=' $idClient ' " , false , MYSQL_ASSOC );
$login = trim ( $rep [ 0 ][ 'InterSudLogin' ]);
$pass = trim ( $rep [ 0 ][ 'InterSudPass' ]);
$nomClient = trim ( strtoupper ( $rep [ 0 ][ 'nom' ]));
$strInfoCommande = " NOM et Prénom du client demandeur : " . $infoDemandeur -> nom . EOL ;
$strInfoCommande .= " Email du client demandeur : $mail " . EOL ;
$strInfoCommande .= " Tel/Fax du demandeur : " . $infosDemandeur -> tel . ' / ' . $infosDemandeur -> fax . EOL ;
$strInfoCommande .= " Profil du demandeur : " . trim ( $infosDemandeur -> service ) . EOL ;
$typeEnqLog = 'enqueteDemNF' ;
if ( $login == '' || $pass == '' ) {
/** Il ne s'agit pas d'un client final, on anonymise la commande **/
$login = 'YLENA' ; // Demandes en test
$pass = 'WYLFE' ;
$nomClient = $strInfoCommande = '' ;
$typeEnqLog = 'enqueteDem' ;
/* ENQUETES EN PROD
$login = 'FACTURE' ;
$pass = 'AWKROM' ;
*/
}
$url = 'http://www.intersud.fr/espace_client/espace_client.php' ;
$cookie = $referer = '' ;
$tabPost = array ( 'login' => $login , 'pwd' => $pass );
$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);
//@todo
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' ];
/** Connexion à l ' Extranet Intersud
**/
$url = 'http://intersud.fr/espace_client/demande_enquete.php' ;
$tdeb = microtime ( true );
$page = getUrl ( $url , $cookie , '' , $referer , false , '' , '' , 7 );
$tfin = microtime ( true );
$duree += $tfin - $tdeb ;
$referer = $url ;
$body = $page [ 'body' ];
$fp =@ fopen ( LOG_PATH . " /intersud.log " , " a " );
@ fwrite ( $fp , print_r ( $page , true ));
@ fclose ( $fp );
$tabInterSud = array ();
if ( preg_match_all ( '/<input(?:.*)name="(.*)"(?:.*)value="(.*)"/Uim' , $body , $matches )) {
foreach ( $matches [ 1 ] as $i => $field ) {
$tmp = explode ( '"' , $matches [ 2 ][ $i ]);
$tabInterSud [ $field ] = $tmp [ 0 ];
}
}
if ( preg_match_all ( '/<input(?:.*)value="(.*)"(?:.*)name="(.*)"/Uim' , $body , $matches )) {
foreach ( $matches [ 2 ] as $i => $field ) {
$tmp = explode ( '"' , $matches [ 1 ][ $i ]);
$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 ( LOG_PATH . " /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 . " \n " .
" Date et heure de la commande : " . date ( 'd/m/Y - H:i' ) . " \n " .
" Origine de la commande : $nomClient " .
" $strInfoCommande " . " \n \n " .
" CA : " . $infosCommande -> PrecisionsMontantCA . " \n " .
" Motif de la demande : " . trim ( $infosCommande -> PrecisionsMotif . ' ' . $infosCommande -> PrecisionsAutre ) . " \n " .
" Type de la demande : " . $infosCommande -> PrecisionsType . " \n " .
" Anciennete de la relation : " . $infosCommande -> Anciennete . ' ' . $infosCommande -> AncienneteDuree . " \n " .
" Observations : " . $infosCommande -> Observation . EOL ;
if ( $infosCommande -> ImpayeesChoix <> 'non' )
$comment .= " Impayé(s) : " . $infosCommande -> ImpayeesNombre . " impayé(s) pour un montant de " . $infosCommande -> ImpayeesMontant . " en date du " . $infosCommande -> ImpayeesDate . EOL ;
if ( $infosCommande -> RetardPaiementChoix <> 'non' )
$comment .= " Retard(s) de paiement : " . $infosCommande -> RetardPaiementNombre . " retard(s) pour un montant de " . $infosCommande -> RetardPaiementMontant . " en date du " . $infosCommande -> RetardPaiementDate . EOL ;
if ( $infosCommande -> LitigeChoix <> 'non' )
$comment .= " Présence de litige(s) : " . $infosCommande -> LitigePrecisions . EOL ;
$enqType = 0 ;
$enqDelai = 7 ;
switch ( strtolower ( $infosCommande -> Type )) {
case 'premier' : $enqType = 0 ; $enqDelai = 6 ; break ;
case 'gold' : $enqType = 1 ; break ;
case 'distrimat' : $enqType = 2 ; break ;
case 'star' : $enqType = 3 ; break ;
case 'avis_bancaire' : $enqType = 4 ; break ;
case 'autre' : $enqType = 5 ; break ;
}
/** Ajout du RIB si communiqué **/
if ( @ trim ( implode ( ' ' , $infosCommande -> RIB )) <> '' )
$iDbCrm -> insert ( 'banques' , array (
'siren' => $siren ,
'libBanqueGuichet' => '' ,
'precis' => 1 ,
'codeBanque' => $infosCommande -> RIB -> banque ,
'codeGuichet' => $infosCommande -> RIB -> guichet ,
'numCompte' => $infosCommande -> RIB -> compte . $infosCommande -> RIB -> cle ,
'dateSource' => DATETIME ,
), true );
/** Remplissage du formulaire d'enquête pour soumission à Intersud **/
$iInsee = new MInsee ();
$tabIdentite = $iInsee -> getIdentiteLight ( $siren );
$tabPost = array (
'soc' => $tabIdentite [ 'Nom' ],
'cible_enk' => 9 , // 9
'siret' => $siren ,
'acti' => '' ,
'soc_exp' => $tabInterSud [ 'soc_exp' ],
'type_enk' => $enqType , // 0=Premier, 1=Gold, 2=Distrimat, 3=Star, 4=Avis bancaire, 5=Autre
'nom_diri' => '' ,
'adr' => $tabIdentite [ 'Adresse' ],
'ref_exp' => $tabInterSud [ 'ref_exp' ],
'autre_type_enk' => '' , // Texte libre
'adr2' => $tabIdentite [ 'Adresse2' ],
'delai_enk' => $enqDelai , // 6=24h, 7=72h, 8=+de5jours
'ville' => $tabIdentite [ 'Ville' ],
'cp' => $tabIdentite [ 'CP' ],
'pays' => '' , // International ?
'nom_exp' => $tabInterSud [ 'nom_exp' ],
'tel' => $tabIdentite [ 'Tel' ],
'port' => $infosCommande -> AutreTel ,
'tel_exp' => $tabInterSud [ 'tel_exp' ],
'bank' => trim ( implode ( ' ' , $infosCommande -> RIB )),
'int_enk' => $tabInterSud [ 'int_enk' ], // International ?
'encours' => $infosCommande -> Encours ,
'nb_ech' => $infosCommande -> NbEcheances ,
'delai2_enk' => $tabInterSud [ 'delai2_enk' ], // International ?
'email_exp' => $tabInterSud [ 'email_exp' ],
'cred' => '' ,
'comment' => urlencode ( $comment ),
'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 );
//@todo
return array ( 'error' => array ( 'errnum' => 456345 , 'errmsg' => 'Connexion impossible à la plateforme d\'enquetes 3' ), 'results' => $tabRet );
}
$tfin = microtime ( true );
$duree += $tfin - $tdeb ;
$referer = $url ;
$body = $page [ 'body' ];
$result = new CmdEnquete ();
$result -> siren = $siren ;
$result -> emailCommande = $mail ;
$result -> dateCommande = DATETIME ;
$result -> refCmd = 'i' . $ret ;
@ 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 );
$this -> 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 " );
$output = new CmdEnqueteReturn ();
$output -> error = $error ;
$output -> result = $result ;
return $output ;
}
/**
* getStatsUtilisateurs
* @ param string $login
* @ param string $mois
* @ param string $type
* @ param boolean $payants
* @ return array
*/
public function getStatsUtilisateurs ( $login , $mois , $type = 'jour' , $payants = false )
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
if ( $payants )
{
$strPayant = " AND (page LIKE 'greffe_%' OR page LIKE 'inpi_%' OR page='kbis') AND params<>'' AND (params NOT LIKE '%erreur%' OR params LIKE '%erreur 17%') " ;
}
else {
$strPayant = '' ;
}
$iDbCrm = new WDB ( 'sdv1' );
if ( $type == 'jour' ) {
$rep = $iDbCrm -> select ( 'logs' ,
'date(dateHeure) as jours, count(*) as nb' ,
" 1 $strPayant AND login=' $login ' AND dateHeure BETWEEN ' $mois -01' AND ' $mois -31' GROUP BY jours " ,
false , MYSQL_ASSOC );
} elseif ( $type == 'heure' ) {
$rep = $iDbCrm -> select ( 'logs' ,
'HOUR(dateHeure) as heures, count(*) as nb' ,
" 1 $strPayant AND login=' $login ' AND dateHeure BETWEEN ' $mois -01' AND ' $mois -31' GROUP BY heures " ,
false , MYSQL_ASSOC );
}
$tabRet = $rep ;
return array ( 'error' => array ( 'errnum' => 0 , 'errmsg' => '' ), 'results' => $tabRet );
}
/**
* getPortefeuilleCsv
* @ param string $login
* @ param int $idClient
* @ return ListeSurveillancesCsvReturn
*/
public function getPortefeuilleCsv ( $login = '' , $idClient = 0 )
{
return $this -> getListeSurveillancesCsv ( 'portefeuille' , $login , $idClient );
}
/**
* getPortefeuille
* @ param PortefeuilleFiltre $filtre
* @ param int $deb
* @ param int $nbRet
* @ return PortefeuilleReturn
*/
public function getPortefeuille ( $filtre , $deb = 0 , $nbRet = 100 )
{
$this -> authenticate ();
// Initialisation
$error = new ErrorType ();
if ( empty ( $deb )) { $deb = 0 ; }
if ( empty ( $nbRet )) { $nbRet = 100 ; }
$tri = strtolower ( trim ( $filtre -> tri ));
switch ( $tri ) {
case 'ref' : $orderBy = 'ORDER BY ref' ; break ;
case 'dateAjout' : $orderBy = 'ORDER BY dateAjout' ; break ;
case 'dateDerEnvoi' : $orderBy = 'ORDER BY dateDerEnvoi' ; break ;
case 'rs' : $orderBy = 'ORDER BY rs' ; break ;
case 'cp' : $orderBy = 'ORDER BY cp' ; break ;
case 'ville' : $orderBy = 'ORDER BY ville' ; break ;
case 'indiScore' : $orderBy = 'ORDER BY indiScore' ; break ;
case 'encours' : $orderBy = 'ORDER BY encours' ; break ;
default : $orderBy = 'ORDER BY siren' ; break ; // siren ou vide ou autre
}
$tabRet = array ();
$siren = substr ( $filtre -> siret , 0 , 9 );
$nic = substr ( $filtre -> siret , 9 , 5 );
$iDb = new WDB ();
2014-08-06 20:27:01 +00:00
$login = $this -> User -> login ;
2013-11-05 11:18:30 +00:00
$strSelect = 's.email, s.siren, s.nic, s.ref, s.dateAjout, s.rs, s.cp, s.ville, s.dateDerEnvoi, s.encoursClient, c.actif, c.procol, c.indiScore, c.indiScore20, c.encours, c.indiScoreDate, c.dateBilan, c.indiScorePre, c.indiScore20Pre, c.encoursPre, c.indiScoreDatePre, c.sourceModif, c.scoreSolv, c.scoreSolvPre, c.scoreDir, c.scoreDirPre, c.scoreConf, c.scoreConfPre, c.scoreZ, c.scoreZPre, c.scoreCH, c.scoreCHPre, c.scoreAfdcc2, c.scoreAfdcc2Pre, c.situFi, c.situFiPre, c.infoNote, c.infoNotePre, c.noteStruct, c.noteStructPre, c.noteFin, c.noteFinPre, c.tendance, c.tendancePre, c.dateUpdate' ;
$strFiltre = '' ;
if ( intval ( $siren ) > 0 ) $strFiltre .= " AND s.siren= $siren " ;
if ( ! empty ( $filtre -> ref )) $strFiltre .= " AND s.ref LIKE '% $filtre->ref %' " ;
if ( ! empty ( $filtre -> rs )) $strFiltre .= " AND s.rs LIKE '% $filtre->rs %' " ;
// Il faut compter le nombre de siren au total
$tabTmp = $iDb -> select ( 'surveillances_site s' , 'count(*) as nb' , " s.login=' $login ' AND s.source='score' AND s.dateSuppr=0 $strFiltre " , false , MYSQL_ASSOC );
$nbRepTot = $tabTmp [ 0 ][ 'nb' ];
$tabTmp = $iDb -> select ( 'surveillances_site s, scores_surveillance c' , $strSelect , " s.login=' $login ' AND s.source='score' AND s.dateSuppr=0 AND s.siren=c.siren $strFiltre $orderBy LIMIT $deb , $nbRet " , false , MYSQL_ASSOC );
foreach ( $tabTmp as $i => $tabSurv ) {
if ( trim ( $tabSurv [ 'rs' ]) <> '' ) {
$rs = $tabSurv [ 'rs' ];
$cp = $tabSurv [ 'cp' ];
$ville = $tabSurv [ 'ville' ];
} else {
$iInsee = new MInsee ();
$tabIdentite = $iInsee -> getIdentiteLight ( $tabSurv [ 'siren' ], $tabSurv [ 'nic' ]);
$rs = $tabIdentite [ 'Nom' ];
$cp = $tabIdentite [ 'CP' ];
$ville = $tabIdentite [ 'Ville' ];
$iDb -> update ( 'surveillances_site' , array (
'rs' => $rs ,
'cp' => $cp ,
'ville' => $ville ),
" login=' $login ' AND source='score' AND dateSuppr=0 AND siren= " . $tabSurv [ 'siren' ] . " AND nic= " . $tabSurv [ 'nic' ],
false
);
}
$portefeuille = new Portefeuille ();
$portefeuille -> email = $tabSurv [ 'email' ];
$portefeuille -> siren = $tabSurv [ 'siren' ];
$portefeuille -> nic = $tabSurv [ 'nic' ];
$portefeuille -> ref = $tabSurv [ 'ref' ];
$portefeuille -> dateAjout = $tabSurv [ 'dateAjout' ];
$portefeuille -> rs = $rs ;
$portefeuille -> cp = $cp ;
$portefeuille -> ville = $ville ;
// Entreprise
$portefeuille -> actif = $tabSurv [ 'actif' ];
$portefeuille -> procol = $tabSurv [ 'procol' ];
$portefeuille -> indiScore = $tabSurv [ 'indiScore' ];
$portefeuille -> indiScore20 = $tabSurv [ 'indiScore20' ];
$portefeuille -> indiScorePre = $tabSurv [ 'indiScorePre' ];
$portefeuille -> indiScore20Pre = $tabSurv [ 'indiScore20Pre' ];
$portefeuille -> encours = $tabSurv [ 'encours' ];
$portefeuille -> encoursPre = $tabSurv [ 'encoursPre' ];
$portefeuille -> indiScoreDate = $tabSurv [ 'indiScoreDate' ];
$portefeuille -> indiScoreDatePre = $tabSurv [ 'indiScoreDatePre' ];
$portefeuille -> encoursClient = $tabSurv [ 'encoursClient' ];
$portefeuille -> dateBilan = $tabSurv [ 'dateBilan' ];
$portefeuille -> sourceModif = $tabSurv [ 'sourceModif' ];
//, c.scoreSolv, c.scoreSolvPre, c.scoreDir, c.scoreDirPre, c.scoreConf, c.scoreConfPre, c.scoreZ, c.scoreZPre, c.scoreCH, c.scoreCHPre, c.scoreAfdcc2, c.scoreAfdcc2Pre, c.situFi, c.situFiPre, c.infoNote, c.infoNotePre, c.noteStruct, c.noteStructPre, c.noteFin, c.noteFinPre, c.tendance, c.tendancePre, c.dateUpdate';
$portefeuille -> dateDerEnvoi = $tabSurv [ 'dateDerEnvoi' ];
$tabRet [] = $portefeuille ;
}
$output = new PortefeuilleReturn ();
$output -> error = $error ;
$output -> result = $tabRet ;
$output -> nbReponses = count ( $tabRet );
$output -> nbReponsesTotal = $nbRepTot ;
return $output ;
}
/**
* rechercheHisto
* @ param string $recherche
* @ param string $annee
* @ param string $typeBod
* @ param int $deb
* @ param int $nbRep
* @ param int $maxRep
* @ param bool $pertinence
* @ return RechercheHistoReturn
*/
public function rechercheHisto ( $recherche , $annee = '' , $typeBod = '' , $deb = 0 , $nbRep = 20 , $maxRep = 200 , $pertinence = false )
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
if ( empty ( $annee )) $annee = '' ;
if ( empty ( $typeBod )) $typeBod = '' ;
if ( empty ( $deb )) $deb = 0 ;
if ( empty ( $nbRep )) $nbRep = 20 ;
if ( empty ( $maxRep )) $maxRep = 200 ;
if ( empty ( $annee )) $pertinence = false ;
$liste = array ();
$index = 'histo' ;
debugLog ( 'I' , " rechercheHisto de $recherche ( $annee ) (Max Rep= $nbRep ) " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$tabFiltres = array ();
if ( $annee <> '' && $annee * 1 >= 1953 && $annee * 1 <= date ( 'Y' ) * 1 )
$tabFiltres = array ( 'annee1' => $annee );
/*
require_once 'Metier/sphinx/recherche2.php' ;
$ret = search2 ( 'histo' , " $recherche " , $tabFiltresAnnee , $deb , $nbRep , $maxRep , $pertinence );
*/
if ( SPHINX_HISTO_VERSION == 1 ){
2013-11-05 13:53:37 +00:00
require_once 'Vendors/sphinxapi/sphinxapi-0.9.9.php' ;
2013-11-05 11:18:30 +00:00
} elseif ( SPHINX_HISTO_VERSION == 2 ){
2014-01-29 08:39:29 +00:00
require_once 'Vendors/sphinxapi/sphinxapi-2.1.5.php' ;
2013-11-05 11:18:30 +00:00
}
$cl = new SphinxClient ();
$cl -> SetServer ( SPHINX_HISTO_HOST , SPHINX_HISTO_PORT );
$cl -> SetConnectTimeout ( 1 );
$cl -> SetLimits ( $deb , $nbRep , $maxRep );
$cl -> SetMatchMode ( SPH_MATCH_EXTENDED );
foreach ( $tabFiltres as $nomFiltre => $valFiltre )
$cl -> SetFilter ( $nomFiltre , array ( 0 => $valFiltre ));
$cl -> SetRankingMode ( SPH_RANK_PROXIMITY_BM25 );
$res = $cl -> Query ( $recherche , $index );
if ( $res === false ) {
debugLog ( 'I' , " Search Sphinx : Pas de réponse pour $recherche avec " . implode ( ',' , $tabFiltres ) . ' (' . $cl -> GetLastError () . ')' , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$criteres = new RechercheHistoCriteres ();
$criteres -> recherche = $recherche ;
$criteres -> annee = $annee ;
$output = new RechercheHistoReturn ();
$output -> criteres = $criteres ;
$output -> nbReponses = 0 ;
$output -> nbReponsesTotal = 0 ;
$output -> duree = $res [ time ];
$output -> mots = array ();
$output -> reponses = array ();
return $output ;
}
// Le moteur est opérationel
if ( $cl -> GetLastWarning () ) {
debugLog ( 'I' , " Search Sphinx : Warning pour $recherche - " . $cl -> GetLastWarning (), __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
//print "WARNING: " . $cl->GetLastWarning() . "\n\n";
}
debugLog ( 'I' , " 'Search Sphinx dans $index de $recherche (Filtre= " . implode ( ',' , $tabFiltres ) . " ), Deb= $deb , nbRep= $nbRep , max= $max , any= $any " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$tabRet = array ();
if ( is_array ( $res [ 'matches' ])) {
$iDb = new WDB ();
foreach ( $res [ 'matches' ] as $doc => $docinfo )
{
$listeEtab = $iDb -> select ( 'histobodacc.bodacc_ocr' ,
" 'Histo' as Loc, id, nomFichier, annee1, bod, texte " ,
" id= $doc " );
$etab = $listeEtab [ 0 ];
$tabRet [] = array (
'Localisation' => $etab [ 'Loc' ],
'id' => $doc ,
'Pertinence' => $docinfo [ 'weight' ],
'Fichier' => $etab [ 'nomFichier' ],
'Annee' => $etab [ 'annee1' ],
'Code' => $etab [ 'bod' ],
'Texte' => $etab [ 'texte' ],
);
}
}
debugLog ( 'I' , 'Search Sphinx : Retourne ' . $res [ total ] . '/' . $res [ total_found ] . ' en ' . $res [ time ] . 'secondes' , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$liste = $tabRet ;
$nbTot = $res [ total_found ];
$duree = $res [ time ];
$tabMots = $res [ 'words' ];
$tabRet = array ();
$k = 0 ;
if ( count ( $liste ) > 0 ) {
require_once 'i18n/cleanchar.php' ;
foreach ( $liste as $n => $etab ) {
$texte = cleanutf8 ( $etab [ 'Texte' ]);
$pattern = '/[^a-zA-Z0-9\/]+/ ' ;
$texte = preg_replace ( $pattern , ' ' , $texte );
$posMin = 100000 ;
$hitMin = 1000000 ;
foreach ( $tabMots as $mot => $tabMot ) {
if ( $tabMot [ 'hits' ] < $hitMin ) {
$hitMin = $tabMot [ 'hits' ];
$motSignificatif = $mot ;
}
}
$posMin = stripos ( $texte , '' . $motSignificatif );
if ( $posMin < 150 ) $posMin = 150 ;
$texte2 = substr ( $texte , $posMin - 150 , 250 );
$reponse = new RechercheHistoReponses ();
$reponse -> id = $etab [ 'id' ];
$reponse -> Pertinence = $etab [ 'Pertinence' ];
//@todo : gestion du lien pour le téléchargement des fichiers bodacc
$file = strtr ( $etab [ 'Fichier' ], array (
'.txt' => '.pdf' ,
'/mnt/bodacc/' => '' ));
$vieuxWS = false ;
if ( $vieuxWS ) {
$reponse -> Fichier = 'http://tville.scores-decisions.com/bodacc/' . $file ;
} else {
$hostname = 'http://' . $_SERVER [ 'SERVER_NAME' ];
if ( $_SERVER [ 'SERVER_PORT' ] != '80' ){
$hostname .= ':' . $_SERVER [ 'SERVER_PORT' ];
}
$url = '/fichier/bodacc/q/' . base64_encode ( $file );
$reponse -> Fichier = $hostname . $url ;
}
$reponse -> Annee = $etab [ 'Annee' ];
$reponse -> Code = $etab [ 'Code' ];
$reponse -> Texte = $texte2 ;
$tabRet [] = $reponse ;
$k ++ ;
}
}
$criteres = new RechercheHistoCriteres ();
$criteres -> recherche = $recherche ;
$criteres -> annee = $annee ;
$output = new RechercheHistoReturn ();
$output -> criteres = $criteres ;
$output -> nbReponses = count ( $tabRet );
$output -> nbReponsesTotal = $nbTot ;
$output -> duree = $duree ;
$output -> mots = array_keys ( $tabMots );
$output -> reponses = $tabRet ;
return $output ;
}
/**
* getListeSurveillanceCsv
* @ param string $source
* @ param string $login
* @ param int $idClient
* @ return ListeSurveillancesCsvReturn
*/
public function getListeSurveillancesCsv ( $source = '' , $login = '' , $idClient = 0 )
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
if ( empty ( $source )) $source = '' ;
if ( empty ( $idClient )) $idClient = 0 ;
debugLog ( 'I' , " getListeSurveillancesCsv Début $source $login $idClient " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$tabRet = array ();
$iDb = new WDB ();
$strClient = $strLogin = '' ;
$exportPtf = false ;
switch ( $source )
{
case 'insee' :
case 'annonces' :
case 'bilans' :
case 'score' :
case 'actes' :
case 'privileges' :
case 'dirigeants' :
break ;
case 'portefeuille' :
$source = 'score' ;
$exportPtf = true ;
break ;
default :
$source = '' ;
break ;
}
if ( $source <> '' ) $strSource = " AND source=' $source ' " ;
else $strSource = '' ;
// Control idClient
2014-08-06 20:27:01 +00:00
if ( $idClient == 0 || ( $idClient != $this -> User -> idClient && $this -> User -> profil != 'SuperAdministrateur' ) ){
$idClient = $this -> User -> idClient ;
2013-11-05 11:18:30 +00:00
}
$strClient = " AND u.idClient= $idClient " ;
2014-08-06 20:27:01 +00:00
if ( $this -> User -> profil == 'SuperAdministrateur' || $this -> User -> profil == 'Administrateur' ) {
2013-11-05 11:18:30 +00:00
// Surveillances de tous les utilisateurs du client
if ( empty ( $login )) {
$login = '' ;
//Surveillances de l'utilisateur
} else {
$strLogin = " AND s.login=' $login ' " ;
}
} else {
//Par défaut préselection de l'utilisateur
2014-08-06 20:27:01 +00:00
$login = $this -> User -> login ;
2013-11-05 11:18:30 +00:00
$strLogin = " AND s.login=' $login ' " ;
}
$fichierCsv = DOC_WEB_LOCAL . " listesurv- $source - $login - $idClient .csv " ;
if ( file_exists ( $fichierCsv )
&& date ( 'Ymd' , filemtime ( $fichierCsv )) == date ( 'Ymd' )
&& filesize ( $fichierCsv ) > 60 ) {
$size = filesize ( $fichierCsv );
$erreur = false ;
$tabNom = array ();
$cache = 1 ;
} else {
unlink ( $fichierCsv );
if ( $source == 'score' ){
2014-08-06 20:27:01 +00:00
if ( $this -> User -> typeScore == 20 ) {
2013-11-05 11:18:30 +00:00
$strScore = 'v.indiScore20 AS indiScore20' ;
$strScorePre = 'v.indiScore20Pre AS indiScore20Pre' ;
} else {
$strScore = 'v.indiScore AS indiScore100' ;
$strScorePre = 'v.indiScorePre AS indiScore100Pre' ;
}
/* v . scoreZ , v . scoreZPre , v . scoreCH , v . scoreCHPre ,
v . scoreAfdcc2 , v . scoreAfdcc2Pre , v . situFi , v . situFiPre , v . infoNote , v . infoNotePre ,
v . noteStruct , v . noteStructPre , v . noteFin , v . noteFinPre , v . tendance , v . tendancePre , */
$sql = " SELECT LOWER(s.login) as loginUti, s.source, s.email, s.siren, s.nic, s.ref, s.dateAjout,
s . rs , s . cp , s . ville , s . dateDerEnvoi ,
s . encoursClient , v . actif , v . procol , $strScore , v . encours , v . indiScoreDate , v . dateBilan ,
$strScorePre , v . encoursPre , v . indiScoreDatePre , v . sourceModif , v . scoreSolv , v . scoreSolvPre , v . scoreDir ,
v . scoreDirPre , v . scoreConf , v . scoreConfPre ,
e . cj , e . capital , e . capitalDev , e . ape_entrep , e . tca , e . teff_entrep ,
v . dateUpdate
FROM surveillances_site s , sdv1 . utilisateurs u , sdv1 . clients c , scores_surveillance v , etablissements e
WHERE s . source = 'score' $strClient $strLogin AND dateSuppr = 0 AND s . login = u . login AND u . idClient = c . id AND s . siren = v . siren AND s . siren = e . siren
GROUP BY loginUti , s . siren , s . nic , s . source , s . ref
ORDER BY loginUti ASC , s . siren ASC , s . nic ASC , s . source ASC , s . ref ASC " ;
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeSurveillancesCsv($source, $login, $idClient)", $sql);
} else {
$sql = " SELECT LOWER(s.login) as loginUti, s.source, s.email, s.siren, s.nic, s.ref, s.dateAjout,
s . rs , s . cp , s . ville , s . dateDerEnvoi
FROM surveillances_site s , sdv1 . utilisateurs u , sdv1 . clients c
WHERE 1 $strSource $strClient $strLogin AND dateSuppr = 0 AND s . login = u . login AND u . idClient = c . id
ORDER BY loginUti ASC , s . siren ASC , s . nic ASC , s . source ASC , s . ref ASC " ;
}
debugLog ( 'I' , " getListeSurveillancesCsv SQL $sql " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$fp = fopen ( DOC_WEB_LOCAL . " listesurv- $source - $login - $idClient .sql " , 'w' );
fwrite ( $fp , $sql . EOL );
fclose ( $fp );
$c = Zend_Registry :: get ( 'config' );
exec ( " php " . $c -> profil -> path -> batch . " /sql2csv.php jo " . DOC_WEB_LOCAL . " listesurv- $source - $login - $idClient .sql $fichierCsv > /dev/null & " );
$size = $cache = 0 ;
}
$hostname = 'http://' . $_SERVER [ 'SERVER_NAME' ];
if ( $_SERVER [ 'SERVER_PORT' ] != '80' ){
$hostname .= ':' . $_SERVER [ 'SERVER_PORT' ];
}
$result = new ListeSurveillancesCsv ();
$result -> Url = $hostname . DOC_WEB_URL . " csv/listesurv- $source - $login - $idClient .csv " ;
$result -> Taille = $size ;
$result -> Cache = $cache ;
debugLog ( 'I' , 'getListeSurveillancesCsv Url=' . $hostname . DOC_WEB_URL . " csv/listesurv- $source - $login - $idClient .csv, Taille= $size , Cache= $cache " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$output = new ListeSurveillancesCsvReturn ();
$output -> error = $error ;
$output -> result = $result ;
return $output ;
}
/**
* getListeJalCollecte
* @ return ListeJalCollecteReturn
*/
public function getListeJalCollecte ()
{
$this -> authenticate ();
//Initialisation
$error = new ErrorType ();
$iBodacc = new MBodacc ();
$tabJal = $iBodacc -> getListeJalCollecte ();
foreach ( $tabJal as $i => $jal )
{
$jalCollecte = new JalCollecte ();
$jalCollecte -> id = $i ;
$jalCollecte -> nom = $jal ;
$tabRet [] = $jalCollecte ;
}
$output = new ListeJalCollecteReturn ();
$output -> error = $error ;
$output -> result = $tabRet ;
return $output ;
}
/**
* getListeFichierSurv
* @ param string $login
* @ param string $ref
* @ param string $nomFic
* @ return ListeFichierSurvReturn
*/
public function getListeFichierSurv ( $login , $ref = '*' , $nomFic = '' )
{
$this -> authenticate ();
if ( empty ( $ref )) $ref = '*' ;
if ( empty ( $nomFic )) $nomFic = '' ;
$error = new ErrorType ();
//debugLog('I',"getListeFichierSurv pour $login, $ref, $nomFic",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$tabFichier = $tabDates = array ();
$numAbo = substr ( $ref , 0 , 5 );
if ( strtolower ( $login ) == 'vwbank' ) {
$repClient = 'volkswagen bank' ;
$ficClient = 'surveillanceBodacc_SURBODPRDCFTVWBANK' ;
$numAbo = $ref = '19300' ;
} elseif ( substr ( $login , 0 , 6 ) == 'apicil' ) {
$repClient = 'apicil' ;
$ficClient = 'surveillanceBodacc_SURBODPRDCFTAPICIL' ;
$numAbo = $ref = '' ;
} elseif ( strtolower ( $login ) == 'omni04' ) {
$repClient = 'aggm mederic ' ;
$ficClient = 'surveillanceBodacc_SURBODPRDFTSOMNIREP' ;
$numAbo = $ref = '' ;
} elseif ( strtolower ( $login ) == 'bodacca3m' ) {
$repClient = 'aggm mederic ' ;
$ficClient = 'surveillanceBodacc_SURBODPRDFTSMEDERIC' ;
$numAbo = $ref = '' ;
} elseif ( strtolower ( $login ) == 'bodaccomni' ) {
$repClient = 'aggm mederic ' ;
$ficClient = 'surveillanceBodacc_SURBODPRDFTSOMNIREP' ;
$numAbo = $ref = '' ;
} elseif ( strtolower ( $login ) == 'bodacccrr' ) {
$repClient = 'aggm mederic ' ;
$ficClient = 'surveillanceBodacc_SURBODPRDFTSCRR' ;
$numAbo = $ref = '' ;
} elseif ( strtolower ( $login ) == 'cpcambr13' || strtolower ( $login ) == 'cpcambr14' ) {
$repClient = 'cpcam des bouches du rhône' ;
$ficClient = 'diffusionBodacc_DIFBODPRDMAICPCAM13' ;
$numAbo = $ref = '' ;
} elseif ( strtolower ( $login ) == 'frbsurveillance' ){
$repClient = 'france boissons' ;
$ficClient = 'surveillanceBodacc_SURBODPRDFTPFBOISSON' ;
} else {
$repClient = 'cnasea' ;
$ficClient = 'surveillanceBodacc_SURBODTSTFTSCNASEA' ;
}
$dh = opendir ( DOC_WEB_LOCAL . " clients/ $repClient / " );
if ( ! $dh ) {
@ sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " getListeFichierSurv pour $login , $ref , $nomFic " , " Impossible d'ouvrir le dossier '/home/data/clients/ $repClient /' " );
$error -> errnum = 1 ;
$error -> errmsg = " Impossible d'ouvrir le dossier client " ;
} else {
while ( false !== ( $filename = readdir ( $dh ))) {
if ( $filename <> '.' && $filename <> '..' && substr ( $filename , - 4 ) == '.csv' && substr ( $filename , 0 , 42 ) == $ficClient . $numAbo ) {
$tabFichier [] = $filename ;
$tabDates [] = substr ( $filename , 43 , 8 );
$tabClients [] = substr ( $filename , 0 , 42 );
}
elseif ( $ref == '*' && $filename <> '.' && $filename <> '..' && substr ( $filename , - 4 ) == '.csv' && substr ( $filename , 0 , 37 ) == $ficClient && substr ( $filename , 37 , 1 ) <> '_' ) {
$tabFichier [] = $filename ;
$tabDates [] = substr ( $filename , 43 , 8 );
$tabClients [] = substr ( $filename , 0 , 42 );
}
elseif ( $filename <> '.' && $filename <> '..' && substr ( $filename , - 4 ) == '.csv' && substr ( $filename , 0 , 37 ) == $ficClient && substr ( $filename , 37 , 1 ) == '_' && $repClient == 'apicil' ) {
$tabFichier [] = $filename ;
$tabDates [] = substr ( $filename , 38 , 8 );
$tabClients [] = substr ( $filename , 0 , 37 );
}
elseif ( $filename <> '.' && $filename <> '..' && substr ( $filename , - 4 ) == '.csv' && substr ( $filename , 0 , 38 ) == $ficClient && substr ( $filename , 38 , 1 ) == '_' && $repClient == 'aggm mederic ' ) {
$tabFichier [] = $filename ;
$tabDates [] = substr ( $filename , 39 , 8 );
$tabClients [] = substr ( $filename , 0 , 38 );
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, $nomFic : fichier lu '$filename'", "Fichier lu '$filename'");
/*
elseif ( $ficClient == 'surveillanceBodacc_SURBODPRDFTPFBOISSON' && substr ( $filename , 0 , strlen ( $ficClient )) == $ficClient && $repClient == 'france boissons' ) {
$tabFichier [] = $filename ;
$tabDates [] = substr ( $filename , strlen ( $ficClient ) + 1 , 8 );
$tabClients [] = substr ( $filename , 0 , strlen ( $ficClient ));
}
*/
}
/** Tableau des noms de fichier **/
sort ( $tabFichier );
/** Tableau des dates de livraisons **/
$tabDates = array_unique ( $tabDates );
sort ( $tabDates );
/** Tableau des Clients **/
$tabClients = array_unique ( $tabClients );
sort ( $tabClients );
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>$tabDates);
/*@ sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " getListeFichierSurv pour $login , $ref , $nomFic " ,
" Fichiers : " . EOL .
print_r ( $tabFichier , true ) .
" Dates: " . EOL .
print_r ( $tabDates , true ) .
" Clients : " . EOL .
print_r ( $tabClients , true )
); */
if ( $ref == '*' ) {
$tabFichier = array ();
// Boucle sur les dates de livraison
foreach ( $tabDates as $dateFic ) {
if ( strlen ( $dateFic ) <> 8 ) continue ;
if ( ! file_exists ( DOC_WEB_LOCAL . " clients/ $repClient / $ficClient " . '_' . " $dateFic .csv " ) ||
filesize ( DOC_WEB_LOCAL . " clients/ $repClient / $ficClient " . '_' . " $dateFic .csv " ) == 0 ) {
$fpW = fopen ( DOC_WEB_LOCAL . " clients/ $repClient / $ficClient " . '_' . " $dateFic .csv " , 'w' );
$entete = true ;
// Boucle afin de vérifier si on est sur le bon client
foreach ( $tabClients as $nomClient ) {
$dh = opendir ( DOC_WEB_LOCAL . " clients/ $repClient / " );
while ( false !== ( $filename = readdir ( $dh ))) {
if ( substr ( $filename , 0 , 51 ) == $nomClient . '_' . $dateFic && substr ( $filename , - 4 ) == '.csv' ) {
$fichier = $filename ;
//break;
}
}
$fpR = fopen ( DOC_WEB_LOCAL . " clients/ $repClient / $fichier " , 'r' );
//return array('error'=>array('errnum'=>0, 'errmsg'=>''), 'results'=>array(($fichier)));//die;
if ( $fpR ) {
while ( ! feof ( $fpR )) {
$ligne = trim ( fgets ( $fpR ));
if ( substr ( $ligne , 0 , 5 ) == 'Siren' && $entete == true ) {
fwrite ( $fpW , 'SITE;' . $ligne . EOL );
$entete = false ;
}
elseif ( substr ( $ligne , 0 , 5 ) <> 'Siren' && trim ( $ligne ) <> '' ) {
fwrite ( $fpW , strtr ( $nomClient , array ( 'surveillanceBodacc_SURBODTSTFTS' => '' ,
'surveillanceBodacc_SURBODPRDCFT' => '' )) . ';' . $ligne . EOL );
}
}
fclose ( $fpR );
}
}
fclose ( $fpW );
}
if ( strlen ( $dateFic ) == 8 )
$tabFichier [] = $ficClient . '_' . $dateFic . '.csv' ;
}
}
rsort ( $tabFichier );
if ( $nomFic <> '' ) {
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "getListeFichierSurv pour $login, $ref, /home/data/clients/$repClient/$nomFic", 'Avant BZ2');
if ( ! file_exists ( DOC_WEB_LOCAL . " /csv/ $nomFic .bz2 " ) ||
filesize ( DOC_WEB_LOCAL . " /csv/ $nomFic .bz2 " ) <= 14 ) {
$string = file_get_contents ( " /home/data/clients/ $repClient / $nomFic " );
if ( $string === false ) {
@ sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " getListeFichierSurv pour $login , $ref , $nomFic " , " Ouverture impossible du fichier '/home/data/clients/ $repClient / $nomFic ' " );
}
$bz = bzopen ( DOC_WEB_LOCAL . " /csv/ $nomFic .bz2 " , 'w' );
if ( $bz ) {
bzwrite ( $bz , $string , strlen ( $string ));
bzclose ( $bz );
}
} /* else
@ sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " getListeFichierSurv pour $login , $ref , /home/data/clients/ $repClient / $nomFic " , 'Sans BZ2' );
@ sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " getListeFichierSurv pour $login , $ref , /home/data/clients/ $repClient / $nomFic " , 'Après BZ2' );
*/
}
debugLog ( 'I' , " getListeFichierSurv pour $login , $ref , $nomFic : nb fichiers= " . count ( $tabFichier ), __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$hostname = 'http://' . $_SERVER [ 'SERVER_NAME' ];
if ( $_SERVER [ 'SERVER_PORT' ] != '80' ){
$hostname .= ':' . $_SERVER [ 'SERVER_PORT' ];
}
$result = array ();
foreach ( $tabFichier as $fichier ){
$retFichier = new ListeFichierSurv ();
$retFichier -> UrlFichier = $hostname . '/data/csv/' . $fichier ;
$result [] = $retFichier ;
}
}
$output = new ListeFichierSurvReturn ();
$output -> error = $error ;
$output -> result = $result ;
return $output ;
}
/**
* Geocodage d ' une adresse
* @ param string $adresse
* @ param string $cp
* @ param string $ville
* @ param string $pays
* @ return GeoCodeReturn
*/
public function geoCode ( $adresse , $cp , $ville , $pays = 'France' )
{
$this -> authenticate ();
$ligne = date ( 'YmdHis' ) . " ; $siren ;MMap AVANT " ;
$fp = fopen ( LOG_PATH . '/accesDistant.log' , 'a' );
fwrite ( $fp , $ligne . EOL );
fclose ( $fp );
$mMap = new MMap ( $adresse , $cp , $ville , $pays );
$ligne = date ( 'YmdHis' ) . " ; $siren ;MMap APRES " ;
$fp = fopen ( LOG_PATH . '/accesDistant.log' , 'a' );
fwrite ( $fp , $ligne . EOL );
fclose ( $fp );
$geocode = new GeoCode ();
$geocode -> latitude = $mMap -> latitudeDec ;
$geocode -> longitude = $mMap -> longitudeDec ;
$geocode -> precis = $mMap -> precision ;
$geocode -> adresseValidee = $mMap -> adresseValidee ;
$geocode -> latitudeDeg = $mMap -> latitudeDeg ;
$geocode -> longitudeDeg = $mMap -> longitudeDeg ;
$output = new GeoCodeReturn ();
$output -> error = $error ;
$output -> result = $geocode ;
}
/**
* Recherche d ' entreprise par leur actionnaire
* @ param string $nom Raison sociale / Nom de l ' actionnaire ( obligatoire )
* @ param string $cpVille CP , Ville
* @ param string $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 boolean $pertinence Recherche orthographique stricte sur les noms et prénoms ( si true )
* @ return SearchActReturn
*/
public function searchAct ( $nom , $cpVille = '' , $siren = 0 , $pays = '' , $pctMin = 0 , $pctMax = 100 , $deb = 0 , $nbRep = 20 , $maxRep = 200 , $pertinence = false )
{
debugLog ( 'I' , " Recherche Actionnaire de $nom , $cpVille (Max Rep= $nbRep ) " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
if ( ! empty ( $pays )){
$wdb = new WDB ( 'jo' );
$result = $wdb -> select ( 'tabPays' , 'codPays3' , " libPays LIKE ' " . $pays );
if ( count ( $result > 0 )){
$pays = $result [ 0 ][ 'codPays3' ];
} else {
$pays = '' ;
}
}
if ( empty ( $cpVille )) $cpVille = '' ;
if ( empty ( $siren )) $siren = '' ;
if ( empty ( $pctMin )) $pctMin = 0 ;
if ( empty ( $pctMax )) $pctMax = 100 ;
if ( empty ( $deb )) $deb = 0 ;
if ( empty ( $nbRep )) $nbRep = 20 ;
if ( empty ( $maxRep )) $maxRep = 200 ;
if ( empty ( $pertinence )) $pertinence = false ;
$formR = array (
'type' => 'act' ,
'siren' => $siren ,
'actNomRS' => join ( ' ' , array ( $nom , $cpVille )),
'pays' => $pays ,
'pctMin' => $pctMin ,
'pctMax' => $pctMax ,
);
$version = defined ( 'SPHINX_ACT_VERSION' ) ? SPHINX_ACT_VERSION : 1 ;
require_once 'Metier/sphinx/rechercheFonc.php' ;
$etabs = rechercheAct ( $formR , $deb , $nbRep , $maxRep );
$iInsee = new MInsee ();
$tabRet = array ();
$reponses = $etabs [ 'reponses' ];
if ( count ( $reponses ) > 0 ) {
foreach ( $reponses as $etab ) {
$act = new EntrepriseActItem ();
$act -> id = $etab [ 'id' ];
$act -> Pertinence = $etab [ 'Pertinence' ];
$act -> Siret = $etab [ 'Siret' ];
$act -> Siege = $etab [ 'Siege' ];
$act -> Nom = prepareString ( strtr ( $etab [ 'Nom' ], '/*' , ' ' ));
$act -> Nom2 = prepareString ( $etab [ 'Nom2' ]);
$act -> Sigle = prepareString ( $etab [ 'Sigle' ]);
$act -> Enseigne = prepareString ( $etab [ 'Enseigne' ]);
$act -> Adresse = prepareString ( $etab [ 'Adresse' ]);
$act -> Adresse2 = prepareString ( $etab [ 'Adresse2' ]);
$act -> CP = $etab [ 'CP' ];
$act -> Ville = prepareString ( $etab [ 'Ville' ]);
$act -> Pays = $etab [ 'Pays' ];
$act -> Tel = $etab [ 'Tel' ];
$act -> Fax = $etab [ 'Fax' ];
$act -> FJ = $etab [ 'FJ' ];
$act -> FJLib = prepareString ( $iInsee -> getLibelleFJ ( $etab [ 'FJ' ]));
$act -> Siren = $etab [ 'Siren' ];
$act -> Nic = $etab [ 'Nic' ];
$act -> Actif = $etab [ 'Actif' ];
$act -> NafEtab = $etab [ 'NafEtab' ]; // Etablissement
$act -> NafEtabLib = prepareString ( $iInsee -> getLibelleNaf ( $etab [ 'NafEtab' ])); // Etablissement
$act -> NafEnt = $etab [ 'NafEnt' ]; // Entreprise
$act -> NafEntLib = prepareString ( $iInsee -> getLibelleNaf ( $etab [ 'NafEnt' ]));
$act -> ActNomRs = $etab [ 'ActNomRs' ];
$act -> ActPays = $etab [ 'ActPays' ];
$act -> ActDateLien = $etab [ 'ActDateLien' ];
$act -> ActActif = $etab [ 'ActActif' ];
$act -> ActPmin = $etab [ 'ActPmin' ];
$tabRet [] = $act ;
}
}
$output = new SearchActReturn ();
$output -> nbReponses = $etabs [ 'nbReponses' ];
$output -> nbReponsesTotal = $etabs [ 'nbReponsesTotal' ];
$output -> result = $tabRet ;
if ( $tabRet [ 'nbReponses' ] == 0 ) {
debugLog ( 'W' , " Aucun résultat pour cette recherche ! " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
}
return $output ;
}
/**
* Commande d 'une enquête sur une entreprise en France ou à l' Internationale
* @ param string $siren
* @ param string $infoEnq Informations pour la demande d ' enquête < br />
* InfoEnq [ Entrep ][ Tel ] < br />
* InfoEnq [ Entrep ][ Fax ] < br />
* InfoEnq [ Entrep ][ AutreTel ] < br />
* InfoEnq [ Entrep ][ Mail ] < br />
* InfoEnq [ Entrep ][ AutreMail ] < br />
* InfoEnq [ Entrep ][ Web ] < br />
* InfoEnq [ Entrep ][ Rib ][ Banque ] < br />
* InfoEnq [ Entrep ][ Rib ][ Guichet ] < br />
* InfoEnq [ Entrep ][ Rib ][ Compte ] < br />
* InfoEnq [ Entrep ][ Rib ][ Cle ] < br />
* InfoEnq [ Encours ] < br />
* InfoEnq [ NbEcheances ] < br />
* InfoEnq [ AvisAssureur ] < br />
* InfoEnq [ Type ] < br />
* InfoEnq [ Delai ] < br />
* InfoEnq [ PrecisionsChoix ] < br />
* InfoEnq [ Precisions ][ MontantCA ] < br />
* InfoEnq [ Precisions ][ Motif ] < br />
* InfoEnq [ Precisions ][ Autre ] < br />
* InfoEnq [ Anciennete ] < br />
* InfoEnq [ AncienneteDuree ] < br />
* InfoEnq [ ImpayeesChoix ] < br />
* InfoEnq [ Impayees ][ Montant ] < br />
* InfoEnq [ Impayees ][ Nombre ] < br />
* InfoEnq [ Impayees ][ Date ] < br />
* InfoEnq [ RetardPaiementChoix ] < br />
* InfoEnq [ RetardPaiement ][ Montant ] < br />
* InfoEnq [ RetardPaiement ][ Nombre ] < br />
* InfoEnq [ RetardPaiement ][ Date ] < br />
* InfoEnq [ LitigeChoix ] < br />
* InfoEnq [ Litige ][ Precisions ] < br />
* InfoEnq [ Observation ] < br />
* @ param string $infoDemande Informations sur l ' utilisateur < br />
* InfoUser [ Profil ] < br />
* InfoUser [ ProfilAutre ] < br />
* InfoUser [ Identite ] < br />
* InfoUser [ Tel ] < br />
* InfoUser [ Fax ] < br />
* InfoUser [ Email ] < br />
* InfoUser [ Ref ] < br />
* @ return CommandeEnqueteReturn
*/
public function commandeEnquete ( $siren , $infoEnq , $infoDemande )
{
$this -> authenticate ();
//Initialisation
$infoEnq = json_decode ( $infoEnq );
$infoDemande = json_decode ( $infoDemande );
$mail = trim ( $infoDemande [ 'Email' ]);
if ( $mail == '' ) {
2014-08-06 20:27:01 +00:00
$mail = $this -> User -> email ;
2013-11-05 11:18:30 +00:00
}
$tabInsert = array (
2014-08-06 20:27:01 +00:00
'idUser' => $this -> User -> id ,
2013-11-05 11:18:30 +00:00
'source' => 'intersud' , // 'greffes', 'asso', 'graydon'
'login' => $tabInfoUser [ 'login' ],
'emailCommande' => $mail ,
'siren' => $siren ,
'refDocument' => serialize ( $infoDemande ),
'refCommande' => serialize ( $infoEnq ),
'dateCommande' => DATETIME ,
// 'idClient'=> $tabInfoUser['idClient'],
);
debugLog ( 'I' , " Intersud, début commande sur $siren " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$messageInfo = print_r ( $infoEnq , 1 ) . EOL . print_r ( $infoDemande , 1 ) . EOL ;
2014-08-06 20:27:01 +00:00
$idClient = $this -> User -> idClient ;
2013-11-05 11:18:30 +00:00
$iDbCrm = new WDB ( 'sdv1' );
$rep = $iDbCrm -> select ( 'clients' , ' nom, racineLogin, InterSudLogin, InterSudPass' , " id=' $idClient ' " , false , MYSQL_ASSOC );
$login = trim ( $rep [ 0 ][ 'InterSudLogin' ]);
$pass = trim ( $rep [ 0 ][ 'InterSudPass' ]);
$nomClient = trim ( strtoupper ( $rep [ 0 ][ 'nom' ]));
$strInfoCommande = " NOM et Prénom du client demandeur : " . $infoDemande [ 'Identite' ] . EOL ;
$strInfoCommande .= " Email du client demandeur : $mail " . EOL ;
$strInfoCommande .= " Tel/Fax du demandeur : " . $infoDemande [ 'Tel' ] . ' / ' . $infoDemande [ 'Fax' ] . EOL ;
$strInfoCommande .= " Profil du demandeur : " . trim ( $infoDemande [ 'Profil' ] . ' ' . $infoDemande [ 'ProfilAutre' ]) . EOL ;
$typeEnqLog = 'enqueteDemNF' ;
if ( $login == '' || $pass == '' ) {
/** Il ne s'agit pas d'un client final, on anonymise la commande **/
$login = 'YLENA' ; // Demandes en test
$pass = 'WYLFE' ;
$nomClient = $strInfoCommande = '' ;
$typeEnqLog = 'enqueteDem' ;
/* ENQUETES EN PROD
$login = 'FACTURE' ;
$pass = 'AWKROM' ;
*/
}
/** Connexion à l'Extranet Intersud **/
$url = 'http://www.intersud.fr/espace_client/espace_client.php' ;
$cookie = $referer = '' ;
$tabPost = array (
'login' => $login ,
'pwd' => $pass ,
);
$tdeb = microtime ( true );
$page = getUrl ( $url , $cookie , $tabPost , $referer , false , '' , '' , 7 );
if ( $page [ 'code' ] <> 200 ) {
@ 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);
throw new SoapFault ( '1' , " Connexion impossible à la plateforme d'enquêtes " );
}
$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 ( LOG_PATH . " /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 ) {
@ 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 );
throw new SoapFault ( '2' , " Connexion impossible à la plateforme d'enquêtes " );
}
$tfin = microtime ( true );
$duree += $tfin - $tdeb ;
$referer = $url ;
$body = $page [ 'body' ];
$fp =@ fopen ( LOG_PATH . '/intersud.log' , " a " );
@ fwrite ( $fp , print_r ( $page , true ));
@ fclose ( $fp );
$tabInterSud = array ();
if ( preg_match_all ( '/<input(?:.*)name="(.*)"(?:.*)value="(.*)"/Uim' , $body , $matches )) {
foreach ( $matches [ 1 ] as $i => $field ) {
$tmp = explode ( '"' , $matches [ 2 ][ $i ]);
$tabInterSud [ $field ] = $tmp [ 0 ];
}
}
if ( preg_match_all ( '/<input(?:.*)value="(.*)"(?:.*)name="(.*)"/Uim' , $body , $matches )) {
foreach ( $matches [ 2 ] as $i => $field ) {
$tmp = explode ( '"' , $matches [ 1 ][ $i ]);
$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 ( LOG_PATH . '/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'). "
Origine de la commande : $nomClient
$strInfoCommande
CA : " . $infoEnq['Precisions'] ['MontantCA']. "
Motif de la demande : " .trim( $infoEnq['Precisions'] ['Motif'].' '. $infoEnq['Precisions'] ['Autre']). "
Type de la demande : " . $infoEnq['Precisions'] ['Type']. "
Anciennete de la relation : " . $infoEnq['Anciennete'] .' '. $infoEnq['AncienneteDuree'] . "
Observations : " . $infoEnq['Observation'] .EOL;
if ( $infoEnq [ 'ImpayeesChoix' ] <> 'non' )
$comment .= " Impayé(s) : " . $infoEnq [ 'Impayees' ][ 'Nombre' ] . " impayé(s) pour un montant de " . $infoEnq [ 'Impayees' ][ 'Montant' ] . " en date du " . $infoEnq [ 'Impayees' ][ 'Date' ] . EOL ;
if ( $infoEnq [ 'RetardPaiementChoix' ] <> 'non' )
$comment .= " Retard(s) de paiement : " . $infoEnq [ 'RetardPaiement' ][ 'Nombre' ] . " retard(s) pour un montant de " . $infoEnq [ 'RetardPaiement' ][ 'Montant' ] . " en date du " . $infoEnq [ 'RetardPaiement' ][ 'Date' ] . EOL ;
if ( $infoEnq [ 'LitigeChoix' ] <> 'non' )
$comment .= " Présence de litige(s) : " . $infoEnq [ 'Litige' ][ 'Precisions' ] . EOL ;
$enqType = 0 ;
$enqDelai = 7 ;
switch ( strtolower ( $infoEnq [ 'Type' ])) {
case 'premier' : $enqType = 0 ; $enqDelai = 6 ; break ;
case 'gold' : $enqType = 1 ; break ;
case 'distrimat' : $enqType = 2 ; break ;
case 'star' : $enqType = 3 ; break ;
case 'avis_bancaire' : $enqType = 4 ; break ;
case 'autre' : $enqType = 5 ; break ;
}
/** Ajout du RIB si communiqué **/
if ( @ trim ( implode ( ' ' , $infoEnq [ 'Entrep' ][ 'Rib' ])) <> '' ){
$iDbCrm -> insert ( 'banques' , array (
'siren' => $siren ,
'libBanqueGuichet' => '' ,
'precis' => 1 ,
'codeBanque' => $infoEnq [ 'Entrep' ][ 'Rib' ][ 'Banque' ],
'codeGuichet' => $infoEnq [ 'Entrep' ][ 'Rib' ][ 'Guichet' ],
'numCompte' => $infoEnq [ 'Entrep' ][ 'Rib' ][ 'Compte' ] . $infoEnq [ 'Entrep' ][ 'Rib' ][ 'Cle' ],
'dateSource' => DATETIME ,
), true );
}
/** Remplissage du formulaire d'enquête pour soumission à Intersud **/
$iInsee = new MInsee ();
$tabIdentite = $iInsee -> getIdentiteLight ( $siren );
$tabPost = array (
'soc' => $tabIdentite [ 'Nom' ],
'cible_enk' => 9 , // 9
'siret' => $siren ,
'acti' => '' ,
'soc_exp' => $tabInterSud [ 'soc_exp' ],
'type_enk' => $enqType , // 0=Premier, 1=Gold, 2=Distrimat, 3=Star, 4=Avis bancaire, 5=Autre
'nom_diri' => '' ,
'adr' => $tabIdentite [ 'Adresse' ],
'ref_exp' => $tabInterSud [ 'ref_exp' ],
'autre_type_enk' => '' , // Texte libre
'adr2' => $tabIdentite [ 'Adresse2' ],
'delai_enk' => $enqDelai , // 6=24h, 7=72h, 8=+de5jours
'ville' => $tabIdentite [ 'Ville' ],
'cp' => $tabIdentite [ 'CP' ],
'pays' => '' , // International ?
'nom_exp' => $tabInterSud [ 'nom_exp' ],
'tel' => $tabIdentite [ 'Tel' ],
'port' => $infoEnq [ 'Entrep' ][ 'AutreTel' ],
'tel_exp' => $tabInterSud [ 'tel_exp' ],
'bank' => trim ( implode ( ' ' , $infoEnq [ 'Entrep' ][ 'Rib' ])),
'int_enk' => $tabInterSud [ 'int_enk' ], // International ?
'encours' => $infoEnq [ 'Encours' ],
'nb_ech' => $infoEnq [ 'NbEcheances' ],
'delai2_enk' => $tabInterSud [ 'delai2_enk' ], // International ?
'email_exp' => $tabInterSud [ 'email_exp' ],
'cred' => '' ,
'comment' => urlencode ( $comment ),
'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 ) {
@ 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 );
throw new SoapFault ( '3' , " Connexion impossible à la plateforme d'enquêtes " );
}
$tfin = microtime ( true );
$duree += $tfin - $tdeb ;
$referer = $url ;
$body = $page [ 'body' ];
$output = new CommandeEnqueteReturn ();
$output -> siren = $siren ;
$output -> emailCommande = $mail ;
$output -> dateCommande = DATETIME ;
$output -> refCmde = 'i' . $ret ;
//$strInfoCommande $mail
@ 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 $output ;
}
/**
* Retourne l 'ensemble des informations des dirigeants opérationnels (non statutaires) de l' entreprise
* @ param string $siren Siren de l ' entreprise
* @ return DirigeantOp []
*/
2014-03-18 11:21:43 +00:00
public function getDirigeantsOp ( $siren , $id = null )
2013-11-05 11:18:30 +00:00
{
$this -> authenticate ();
debugLog ( 'I' , " Dirigeants opérationnels demandés pour $siren " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
if ( strlen ( $siren ) > 9 || ( substr ( $siren , 0 , 9 ) * 1 ) < 100 ){
debugLog ( 'W' , " Siren $siren incorrect " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$this -> sendError ( '1010' );
}
$iInsee = new MInsee ();
2014-03-18 11:21:43 +00:00
$dirs = $iInsee -> getDirigeantsOp ( $siren , $id );
2013-11-05 11:18:30 +00:00
$tabRet = array ();
if ( count ( $dirs ) > 0 ){
foreach ( $dirs as $nb => $dir ) {
$objet = new DirigeantOp ();
2014-03-18 11:21:43 +00:00
$objet -> Id = $dir [ 'Id' ];
2013-11-05 11:18:30 +00:00
$objet -> Code = $dir [ 'Fonction' ];
$objet -> Titre = prepareString ( $dir [ 'Titre' ]);
$objet -> Societe = prepareString ( $dir [ 'Societe' ]);
$objet -> Civilite = prepareString ( $dir [ 'Civilite' ]);
$objet -> Nom = prepareString ( $dir [ 'Nom' ]);
$objet -> Prenom = prepareString ( $dir [ 'Prenom' ]);
$objet -> NomUsage = prepareString ( $dir [ 'NomUsage' ]);
$objet -> NaissDate = $dir [ 'NaissDate' ]; // 07/09/1961
$objet -> NaissVille = prepareString ( $dir [ 'NaissVille' ]); // LE RUSSEY
$objet -> NaissDepPays = prepareString ( $dir [ 'NaissDepPays' ]); // LE RUSSEY
2014-03-18 11:21:43 +00:00
$objet -> Tel = $dir [ 'Tel' ];
$objet -> Fax = $dir [ 'Fax' ];
$objet -> Email = $dir [ 'Email' ];
2013-11-05 11:18:30 +00:00
$objet -> Ancien = $dir [ 'Ancien' ];
$objet -> DateFct = $dir [ 'DateFct' ];
$tabRet [] = $objet ;
}
}
$this -> wsLog ( 'dirigeantsOp' , $siren );
debugLog ( 'I' , 'Nb Dirigeants Op retournés = ' . count ( $dirs ), __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
return $tabRet ;
}
/**
* Liste de tous les dépôts enregistrés à l ' INPI pour une entreprise
* @ param string $siren Siren de l ' entreprise
* @ return Depot []
*/
public function getListeDepots ( $siren )
{
$this -> authenticate ();
debugLog ( 'I' , " Liste des dépots INPI pour $siren " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
if ( strlen ( $siren ) > 9 || ( substr ( $siren , 0 , 9 ) * 1 ) < 100 ){
debugLog ( 'W' , " Siren $siren incorrect " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$this -> sendError ( '1010' );
}
$iRncs = new MRncs ();
$evens = $iRncs -> getListeDepots ( $siren );
$tabRet = array ();
if ( count ( $evens ) > 0 ){
foreach ( $evens as $nb => $even ){
$objet = new Depot ();
$objet -> CodeDepot = $even [ 'codDepot' ];
$objet -> LibDepot = prepareString ( $even [ 'libDepot' ]);
$objet -> DateDepot = $even [ 'datDepot' ];
$objet -> RefDepot = $even [ 'refDepot' ];
$objet -> DateRncs = $even [ 'datRncs' ];
$objet -> DateMAJ = $even [ 'datSed' ];
$tabRet [] = $objet ;
}
}
debugLog ( 'I' , 'Nb dépôts retournés = ' . count ( $tabRet ), __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
return $tabRet ;
}
/**
2014-07-29 19:06:58 +00:00
* Identite Light
2013-11-05 11:18:30 +00:00
* @ param string $siret
* @ param integer $id
* @ return IdentiteLight
*/
public function getIdentiteLight ( $siret , $id = 0 )
{
2014-07-29 19:06:58 +00:00
$this -> authenticate ();
2013-11-05 11:18:30 +00:00
//Initialisation
2014-07-29 19:06:58 +00:00
if ( empty ( $id ) ) {
2013-11-05 11:18:30 +00:00
$id = 0 ;
}
$siret = trim ( $siret );
$len = strlen ( $siret );
$siren = substr ( $siret , 0 , 9 );
if ( $len == 14 ) {
$nic = substr ( $siret , 9 , 5 ) * 1 ;
} elseif ( $len == 9 ) {
$nic = 0 ;
}
if ( $siren * 1 == 0 && $id == 0 ) {
$this -> sendError ( '1010' );
}
if ( $len != 14 && $len != 9 ) {
$this -> sendError ( '1020' );
}
$iInsee = new MInsee ();
$tabIdentite = $iInsee -> getIdentiteLight ( $siren , $nic , $id );
$output = new IdentiteLight ();
$output -> id = $tabIdentite [ 'id' ];
$output -> Siret = $tabIdentite [ 'Siret' ];
$output -> Siege = $tabIdentite [ 'Siege' ];
$output -> Nom = $tabIdentite [ 'Nom' ];
$output -> Tribunal = $tabIdentite [ 'Tribunal' ];
$output -> Sigle = $tabIdentite [ 'Sigle' ];
$output -> Enseigne = $tabIdentite [ 'Enseigne' ];
$output -> Adresse = $tabIdentite [ 'Adresse' ];
$output -> Adresse2 = $tabIdentite [ 'Adresse2' ];
$output -> AdresseNum = $tabIdentite [ 'AdresseNum' ];
$output -> AdresseBtq = $tabIdentite [ 'AdresseBtq' ];
$output -> AdresseVoie = $tabIdentite [ 'AdresseVoie' ];
$output -> AdresseRue = $tabIdentite [ 'AdresseRue' ];
$output -> CP = $tabIdentite [ 'CP' ];
$output -> Ville = $tabIdentite [ 'Ville' ];
$output -> Tel = $tabIdentite [ 'Tel' ];
$output -> Fax = $tabIdentite [ 'Fax' ];
$output -> FJ = $tabIdentite [ 'FJ' ];
$output -> FJ_Lib = $tabIdentite [ 'FJ_lib' ];
$output -> Siren = $tabIdentite [ 'Siren' ];
$output -> Nic = $tabIdentite [ 'Nic' ];
$output -> Actif = $tabIdentite [ 'Actif' ];
$output -> NafEtab = $tabIdentite [ 'NafEtab' ];
$output -> NafEnt = $tabIdentite [ 'NafEnt' ];
$output -> NafEntLib = $tabIdentite [ 'NafEntLib' ];
$output -> NafEtabLib = $tabIdentite [ 'NafEtabLib' ];
$output -> AutreId = $tabIdentite [ 'AutreId' ];
$output -> Source = $tabIdentite [ 'Source' ];
$output -> SourceId = $tabIdentite [ 'SourceId' ];
$output -> Dept = $tabIdentite [ 'Dept' ];
$output -> codeCommune = $tabIdentite [ 'codeCommune' ];
$output -> Capital = $tabIdentite [ 'Capital' ];
$output -> CapitalDev = $tabIdentite [ 'CapitalDev' ];
$output -> TrancheCA = $tabIdentite [ 'TrancheCA' ];
$output -> TrancheCALib = $tabIdentite [ 'TrancheCALib' ];
$output -> EffEnTr = $tabIdentite [ 'EffEnTr' ];
$output -> EffEnTrLib = $tabIdentite [ 'EffEnTrLib' ];
$output -> EffEtTr = $tabIdentite [ 'EffEtTr' ];
$output -> EffEtTrLib = $tabIdentite [ 'EffEtTrLib' ];
2014-07-29 19:06:58 +00:00
2013-11-05 11:18:30 +00:00
return $output ;
}
/**
* Retourne les éléments du groupes
* @ param string $siren
* @ param int $pctMin ( 33 , 40 , 50 )
* @ param boolean $stopAtIsin
* @ param int $nbNiveaux
* @ return string
*/
public function getGroupesArbo ( $siren , $pctMin = 33 , $stopAtIsin = false , $nbNiveaux = 10 )
{
$this -> authenticate ();
2014-08-06 20:27:01 +00:00
if ( ! in_array ( $pctMin , array ( 33 , 40 , 50 )) && $this -> User -> idClient != 1 ) {
2013-11-05 11:18:30 +00:00
$pctMin = 33 ;
}
if ( empty ( $stopAtIsin ) ) { $stopAtIsin = false ; }
if ( empty ( $nbNiveaux ) ) { $nbNiveaux = 10 ; }
if ( strlen ( $siren ) != 9 || intval ( $siren ) < 100 ){
debugLog ( 'W' , " Siren $siren incorrect " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$this -> sendError ( '1010' );
}
try {
require_once 'Metier/partenaires/classMLiens2.php' ;
$liensM = new MLiens2 ( $siren , 'siren' );
$liensM -> stopAtFirstIsin = $stopAtIsin ;
$tabRet = $liensM -> getTree ( $pctMin , $nbNiveaux );
} catch ( Exception $e ) {
2014-08-06 20:27:01 +00:00
if ( $this -> User -> idClient == 1 ) {
2013-11-05 11:18:30 +00:00
throw new SoapFault ( 'ERR' , $e -> getMessage ());
} else {
throw new SoapFault ( 'ERR' , " Application error " );
}
}
$this -> wsLog ( 'groupesarbo' , $siren );
return json_encode ( $tabRet );
}
/**
* Retourne les information du groupe , tête de pont
* @ param string $siren
* @ return GroupeInfos
*/
public function getGroupeInfos ( $siren )
{
$this -> authenticate ();
if ( strlen ( $siren ) != 9 || intval ( $siren ) < 100 ){
debugLog ( 'W' , " Siren $siren incorrect " , __LINE__ , __FILE__ , __FUNCTION__ , __CLASS__ );
$this -> sendError ( '1010' );
}
$iDb = new WDB ( 'jo' );
$tmp = $iDb -> select ( 'etablissements_act' ,
2014-04-04 06:25:36 +00:00
'raisonSociale, enseigne, sigle, identite_pre, adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, LPAD(adr_cp,5,0) AS adr_cp, adr_ville, adr_dep, adr_com, tel, fax, siren, sirenGrp' ,
2013-11-05 11:18:30 +00:00
" siren=(SELECT distinct sirenGrp FROM etablissements_act WHERE siren= $siren AND siege=1) LIMIT 0,1 " , false , MYSQL_ASSOC );
$tabEnt = $tmp [ 0 ];
$sirenGrp = $tabEnt [ 'siren' ];
if ( $sirenGrp < 1000 ) {
throw new SoapFault ( 'Error' , 'Aucun siren de groupe' );
}
/** Table des Nafs5 => Secteurs **/
$tmp = $iDb -> select ( 'tabNaf5' , 'codNaf2, codNaf1' , '1 GROUP BY codNAf2' , false , MYSQL_ASSOC );
$tabNAf2 = array ();
foreach ( $tmp as $tmp2 ) {
$tabNAf2 [ $tmp2 [ 'codNaf2' ]] = $tmp2 [ 'codNaf1' ];
}
$tabNaf2Lib = array (
'A' => 'Agriculture, sylviculture et pêche' ,
'B' => 'Industries extractives' ,
'C' => 'Industrie manufacturière' ,
'D' => 'Production et distribution d\'électricité, de gaz, de vapeur et d\'air conditionné' ,
'E' => 'Production et distribution d\'eau ; assainissement, gestion des déchets et dépollution' ,
'F' => 'Construction' ,
'G' => 'Commerce ; réparation d\'automobiles et de motocycles' ,
'H' => 'Transports et entreposage' ,
'I' => 'Hébergement et restauration' ,
'J' => 'Information et communication' ,
'K' => 'Activités financières et d\'assurance' ,
'L' => 'Activités immobilières' ,
'M' => 'Activités spécialisées, scientifiques et techniques' ,
'N' => 'Activités de services administratifs et de soutien' ,
'O' => 'Administration publique' ,
'P' => 'Enseignement' ,
'Q' => 'Santé humaine et action sociale' ,
'R' => 'Arts, spectacles et activités récréatives' ,
'S' => 'Autres activités de services' ,
'T' => 'Activités des ménages en tant qu\'employeurs ; activités indifférenciées des ménages en tant que producteurs de biens et services pour usage propre' ,
'U' => 'Activités extra-territoriales' ,
);
$iInsee = new MInsee ();
$tabId = $iInsee -> getIdentiteEntreprise ( $sirenGrp );
//Chargement retour
$output = new GroupeInfos ();
$output -> grpNom = $tabEnt [ 'raisonSociale' ];
$output -> grpEnseigne = $tabEnt [ 'enseigne' ];
$output -> grpSigle = $tabEnt [ 'sigle' ];
$output -> grpAdrNum = $tabEnt [ 'adr_num' ];
$output -> grpAdrBtq = $tabEnt [ 'adr_btq' ];
$output -> grpAdrTypeVoie = $tabEnt [ 'adr_typeVoie' ];
$output -> grpadrLibVoie = $tabEnt [ 'adr_libVoie' ];
$output -> grpAdrComp = $tabEnt [ 'adr_comp' ];
$output -> grpAdrCP = $tabEnt [ 'adr_cp' ];
$output -> grpAdrVille = $tabEnt [ 'adr_ville' ];
$output -> grpAdrDep = $tabEnt [ 'adr_dep' ];
$output -> grpAdrCom = $tabEnt [ 'adr_com' ];
$output -> grpTel = $tabEnt [ 'tel' ];
$output -> grpFax = $tabEnt [ 'fax' ];
$output -> grpSiren = $tabEnt [ 'siren' ];
$output -> grpTva = $tabId [ 'TvaNumero' ];
$output -> grpIsin = $tabId [ 'Isin' ];
$output -> grpNumRC = $tabId [ 'numRC' ];
$output -> grpTribunal = $tabId [ 'TribunalLib' ];
$output -> grpWeb = $tabId [ 'Web' ];
$grpNbEnt = $grpEffectif = $grpCAExp = $grpCA = $nbProcol = 0 ;
$grpDateCrea = $grpDateImmat = date ( 'Ymd' );
$tmp = $iDb -> select ( 'jo.etablissements_act e' ,
2014-03-17 10:04:40 +00:00
'LPAD(e.siren,9,0), e.eff_entrep, e.dateCrea_ent AS dateCrea, e.dateImmat*1 AS dateImmat, e.bilFK, e.bilFL, e.bilYP, e.ape_entrep, e.avisCs, e.procolHisto' ,
2013-11-05 11:18:30 +00:00
" e.sirenGrp= $sirenGrp AND e.siege=1 " , false , MYSQL_ASSOC );
$tabSirenGrp = array ();
$tabSecteur = array ();
$tabAvis = array ();
if ( count ( $tmp ) > 0 ) {
foreach ( $tmp as $tabEnt )
{
$tabSirenGrp [] = $tabEnt [ 'siren' ];
$grpNbEnt ++ ;
if ( $tabEnt [ 'bilYP' ] > $tabEnt [ 'eff_entrep' ])
$grpEffectif += $tabEnt [ 'bilYP' ];
else
$grpEffectif += $tabEnt [ 'eff_entrep' ];
if ( $tabEnt [ 'procolHisto' ] * 1 == 1 ) $nbProcol ++ ;
if ( $grpDateCrea > $tabEnt [ 'dateCrea' ] && $tabEnt [ 'dateCrea' ] >= 19000101 )
$grpDateCrea = $tabEnt [ 'dateCrea' ];
if ( $grpDateImmat > $tabEnt [ 'dateImmat' ] && $tabEnt [ 'dateImmat' ] >= 19000101 )
$grpDateImmat = $tabEnt [ 'dateImmat' ];
$grpCAExp += $tabEnt [ 'bilFK' ];
$grpCA += $tabEnt [ 'bilFL' ];
$tabSecteur [ $tabNAf2 [ '' . substr ( $tabEnt [ 'ape_entrep' ], 0 , 2 )]][ 'nb' ] ++ ;
$tabSecteur [ $tabNAf2 [ '' . substr ( $tabEnt [ 'ape_entrep' ], 0 , 2 )]][ 'ca' ] += $tabEnt [ 'bilFL' ];
$tabSecteur [ $tabNAf2 [ '' . substr ( $tabEnt [ 'ape_entrep' ], 0 , 2 )]][ 'eff' ] += $tabEnt [ 'eff_entrep' ];
$tabAvis [ $tabEnt [ 'avisCs' ]] ++ ;
}
}
$output -> grpNbProcolHisto = $nbProcol ;
$output -> grpCAExport = $grpCAExp ;
$output -> grpCA = $grpCA ;
if ( $grpCA >= 500000000 )
$output -> grpGrandGroupeFr = 1 ;
else
$output -> grpGrandGroupeFr = 0 ;
$output -> grpNbEntrep = $grpNbEnt ;
$output -> grpEffectif = $grpEffectif ;
$output -> grpAnneCreation = '' ;
if ( $grpDateCrea < $grpDateImmat )
$output -> grpAnneCreation = substr ( $grpDateCrea , 0 , 4 );
else
$output -> grpAnneCreation = substr ( $grpDateImmat , 0 , 4 );
//@todo : transformer le tableau
$output -> avisCs = json_encode ( $tabAvis ); // Vérifier les procol
$tabSecteur2 = array ();
if ( count ( $tabSecteur ) > 0 ) {
foreach ( $tabSecteur as $secteur => $tmp ) {
$info = new GroupeInfosSecteur ();
$info -> code = $secteur ;
$info -> lib = $tabNaf2Lib [ $secteur ];
$info -> entrepNb = $tmp [ 'nb' ];
$info -> entrepTx = round ( $tmp [ 'nb' ] * 100 / $grpNbEnt , 2 );
$info -> caNb = $tmp [ 'ca' ];
$info -> caTx = round ( $tmp [ 'ca' ] * 100 / $grpCA , 2 );
$info -> effNb = $tmp [ 'eff' ];
$info -> effTx = round ( $tmp [ 'eff' ] * 100 / $grpEffectif , 2 );
$tabSecteur2 [] = $info ;
}
}
$output -> secteur = $tabSecteur2 ; //@todo : transformer le tableau
$this -> wsLog ( 'groupeinfos' , $siren );
return $output ;
}
/**
* Liste les bilans en saisie
* @ param BilanSaisieFiltre [] $filtre
* @ param integer $position
* @ param integer $nbRep
*/
protected function getBilanSaisie ( $filtre , $position = 0 , $nbRep = 50 )
{
$this -> authenticate ();
2014-08-06 20:27:01 +00:00
$idUtilisateur = $this -> User -> id ;
2013-11-05 11:18:30 +00:00
if ( empty ( $position )) $position = 0 ;
if ( empty ( $nbRep )) $nbRep = 50 ;
if ( $nbRep > 200 ) $nbRep = 200 ;
$bilansM = new Application_Model_FedasoBilans ();
$sql = $bilansM -> select () -> order ( 'dateEntree DESC' );
if ( is_array ( $filtre ) && count ( $filtre ) > 0 ) {
foreach ( $filtre as $item ) {
switch ( $item -> key ) {
case 'siren' :
$sql -> where ( 'siren=?' , $item -> value );
break ;
case 'etat' :
break ;
/**
* Si l ' utilisateur est de S & d ( idClient = 1 ) et SuperAdministeur ou
* Mode Edition dans les droits alors on permet la sélection d ' un autre
* utilisateur
*/
case 'idUtilisateur' :
2014-08-06 20:27:01 +00:00
if ( $this -> User -> idClient == 1
&& ( $this -> User -> profil == 'SuperAdministrateur'
2013-11-05 11:18:30 +00:00
|| $this -> checkPerm ( 'edition' )) ) {
$idUtilisateur = $item -> value ;
}
break ;
}
}
}
//Select user id
$sql -> where ( 'idUtilisateur=?' , $idUtilisateur );
//Paginate
$sql -> limit ( $nbRep , $position );
//Get results
$results = $bilansM -> fetchAll ( $sql ) -> toArray ();
$iInsee = new MInsee ();
$output = array ();
if ( count ( $results ) > 0 ) {
foreach ( $results as $result ) {
$entrep = $iInsee -> getIdentiteLight ( $result [ 'siren' ]);
$saisie = new BilanSaisieInfos ();
$saisie -> raisonSociale = $entrep [ 'raisonSociale' ];
$saisie -> siren = $result [ 'siren' ];
$saisie -> dateCloture = $result [ 'dateCloture' ]; //@todo : date format 2010-12-31
$saisie -> duree = $result [ 'duree' ];
$saisie -> dateIn = $result [ 'dateEntree' ]; //@todo : date format 2011-08-31 12:00:01
/**
* Gestion des différents états
* 1 - dateEntree : Enregistré
* 2 - dateEnvoi : Saisie en cours
* 3 - dateRetour : Saisie
* 4 - dateChargement : Chargé en base
*
* 5 - codeRetour = : Erreur à la saisie
*/
$saisie -> etat = '' ;
$saisie -> date = '' ;
$output [] = $saisie ;
}
}
return $output ;
}
/**
* Liste des contacts par établissement ( beta )
* @ param string $siret
* @ param string $filtre
2013-12-26 14:25:59 +00:00
* Possible value for " filtre " => fax , web , mail , tel
2013-11-05 11:18:30 +00:00
* @ param int $position
* @ param int $nbRep
* @ return ContactEtReturn
* @ throws SoapFault
*/
2013-11-21 16:13:20 +00:00
public function getContactEt ( $siret , $filtre = null , $position = 0 , $nbRep = 200 )
2013-11-05 11:18:30 +00:00
{
$this -> authenticate ();
2013-11-21 16:13:20 +00:00
if ( strlen ( $siret ) != 9 && strlen ( $siret ) != 14 ) {
2013-11-05 11:18:30 +00:00
$this -> sendError ( '1010' );
}
$siren = substr ( $siret , 0 , 9 );
if ( intval ( $siren ) == 0 ) {
$this -> sendError ( '1010' );
}
2013-11-21 16:13:20 +00:00
$nic = substr ( $siret , 9 , 5 );
2013-11-05 11:18:30 +00:00
if ( intval ( $nic ) == 0 ) {
$nic = '00000' ;
}
2013-11-21 16:13:20 +00:00
$typeToSelect = array ( 'fax' , 'web' , 'mail' , 'tel' );
2013-12-26 14:25:59 +00:00
if ( $filtre !== null && ! in_array ( $filtre , $typeToSelect )) {
throw new SoapFault ( 'ERR' , " Unknown filtre " );
}
2013-11-05 11:18:30 +00:00
$telephonieM = new Application_Model_JoTelephonie ();
$sql = $telephonieM -> select ()
2013-12-26 14:25:59 +00:00
-> from ( $telephonieM , array (
'id' ,
'LPAD(siren,9,0) AS siren' ,
'LPAD(nic,5,0) AS nic' ,
'typeTel' ,
'infoTel' ,
'LPAD(telephone, 10, 0) AS telephone' ,
'partenaire' ,
2014-03-18 20:32:36 +00:00
" dateProvPartenaire " ,
2013-12-26 14:25:59 +00:00
'IF(dateSuppr!=0,1,0) AS deleted' ,
))
2013-11-05 11:18:30 +00:00
-> where ( 'actif=1' )
2013-11-21 16:13:20 +00:00
-> where ( 'typeTel IN ("' . join ( '","' , $typeToSelect ) . '")' )
-> where ( 'siren=?' , $siren );
if ( intval ( $nic ) > 0 ) {
$sql -> where ( 'nic=?' , $nic );
}
2013-12-26 14:25:59 +00:00
if ( $filtre != null ) {
$sql -> where ( 'typeTel=?' , $filtre );
}
$sql -> order ( 'typeTel ASC' );
2013-11-21 16:13:20 +00:00
$sql -> order ( 'dateInsert DESC' ) -> limit ( $nbRep , $position );
2013-11-05 11:18:30 +00:00
try {
$contacts = $telephonieM -> fetchAll ( $sql );
} catch ( Zend_Db_Exception $e ) {
2014-08-06 20:27:01 +00:00
if ( $this -> User -> idClient != 1 ) {
2013-11-05 11:18:30 +00:00
throw new SoapFault ( 'ERR' , " Application error " );
} else {
throw new SoapFault ( 'ERR' , $e -> getMessage ());
}
}
//Comptage
$sql = $telephonieM -> select ()
-> from ( $telephonieM , 'COUNT(*) as nb' )
-> where ( 'actif=1' )
2013-11-21 16:13:20 +00:00
-> where ( 'typeTel IN ("' . join ( '","' , $typeToSelect ) . '")' )
-> where ( 'siren=?' , $siren );
if ( intval ( $nic ) > 0 ) {
$sql -> where ( 'nic=?' , $nic );
}
2013-11-05 11:18:30 +00:00
2013-11-21 16:13:20 +00:00
$result = $telephonieM -> fetchRow ( $sql );
$nbContacts = 0 ;
if ( $result !== null ) {
$nbContacts = $result -> nb ;
}
2013-11-05 11:18:30 +00:00
$list = array ();
if ( $contacts -> count () > 0 ) {
2013-12-26 14:25:59 +00:00
foreach ( $contacts as $item ) {
2013-11-05 11:18:30 +00:00
$contact = new ContactEt ();
$contact -> id = $item -> id ;
2013-12-26 14:25:59 +00:00
$contact -> siren = $item -> siren ;
$contact -> nic = $item -> nic ;
2013-11-21 16:13:20 +00:00
if ( in_array ( $item -> typeTel , array ( 'mail' , 'web' )) ) {
$contact -> value = $item -> infoTel ;
2013-12-26 14:25:59 +00:00
$contact -> description = '' ;
2013-11-21 16:13:20 +00:00
} else {
$contact -> value = $item -> telephone ;
2013-12-26 14:25:59 +00:00
$contact -> description = $item -> infoTel ;
2013-11-21 16:13:20 +00:00
}
2013-11-05 11:18:30 +00:00
$contact -> type = $item -> typeTel ;
2013-12-26 14:25:59 +00:00
$contact -> source = $item -> partenaire ;
2014-03-18 20:32:36 +00:00
$date = new Zend_Date ( $item -> dateProvPartenaire , 'yyyyMMdd' );
$contact -> date = $date -> toString ( 'yyyy-MM-dd' );
2013-12-26 14:25:59 +00:00
$contact -> deleted = false ;
if ( $item -> deleted == 1 ) {
$contact -> deleted = true ;
}
2013-11-05 11:18:30 +00:00
$list [] = $contact ;
}
}
//Return
$output = new ContactEtReturn ();
$output -> nbReponses = $nbContacts ;
$output -> result = $list ;
return $output ;
}
/**
* Identifiant locaux des pays
* @ param string $codeCountry
* @ return CountryId []
* @ throws SoapFault
*/
public function getCountryId ( $codeCountry )
{
$this -> authenticate ();
if ( strlen ( $codeCountry ) != 3 ) {
throw new SoapFault ( 'ERR' , 'codeCountry error' );
}
//Retrieve data
try {
$idlocalM = new Application_Model_Sdv1TabIdLocal ();
$sql = $idlocalM -> select ()
-> where ( 'codPays=?' , $codeCountry )
2013-11-25 15:58:30 +00:00
-> orWhere ( 'codPays IS NULL' )
2013-11-29 14:18:33 +00:00
-> where ( 'dateSuppr=?' , '0000-00-00 00:00:00' );
2013-11-05 11:18:30 +00:00
$row = $idlocalM -> fetchAll ( $sql );
} catch ( Zend_Db_Exception $e ) {
2014-08-06 20:27:01 +00:00
if ( $this -> User -> idClient != 1 ) {
2013-11-05 11:18:30 +00:00
throw new SoapFault ( 'ERR' , " Application error " );
} else {
throw new SoapFault ( 'ERR' , $e -> getMessage ());
}
}
$output = array ();
if ( $row -> count () > 0 ) {
foreach ( $row as $item ) {
$struct = new CountryId ();
$struct -> internalId = $item -> id ;
$struct -> name = $item -> idLocal ;
$struct -> longname = $item -> idLocalLong ;
switch ( $item -> idPrincipal ) {
case 0 :
$struct -> type = 'Secondaire' ;
break ;
case 1 :
$struct -> type = 'Principal' ;
break ;
case 2 :
$struct -> type = 'TVA' ;
break ;
}
$struct -> info = $item -> infoIden ;
$output [] = $struct ;
}
}
return $output ;
}
2014-04-17 07:49:09 +00:00
/**
* Retourne l ' historique des scores
2014-04-21 10:39:46 +00:00
* @ param string $siret
2014-04-17 07:49:09 +00:00
* @ param string $type
2014-04-21 10:39:46 +00:00
* @ return ScoresHistoReturn
2014-04-17 07:49:09 +00:00
* @ throws SoapFault
*/
2014-04-21 10:39:46 +00:00
public function getScoresHisto ( $siret , $type = 'indiscore' )
2014-04-17 07:49:09 +00:00
{
$this -> authenticate ();
2014-04-21 10:39:46 +00:00
if ( strlen ( $siret ) != 9 && strlen ( $siret ) != 14 ) {
$this -> sendError ( '1010' );
}
$siren = substr ( $siret , 0 , 9 );
2014-05-09 20:12:44 +00:00
if ( intval ( $siren ) == 0 ) {
2014-04-21 10:39:46 +00:00
$this -> sendError ( '1010' );
}
2014-05-09 20:12:44 +00:00
if ( strtolower ( $type ) == 'indiscore' ) {
2014-08-06 20:27:01 +00:00
$type = ( $this -> User -> typeScore == 20 ) ? 'indiScore20' : 'indiScore' ;
2014-04-21 10:39:46 +00:00
}
$scoresDb = new Application_Model_JoScoresSurveillance ();
$sql1 = $scoresDb -> select ()
2014-05-08 13:01:00 +00:00
-> from ( array ( 'j' => 'scores_surveillance' ), array ( " j. $type " , 'j.encours' , 'j.indiScoreDate' , 'j.sourceModif' ), 'jo' )
2014-04-23 16:03:30 +00:00
-> where ( 'siren=?' , $siren )
2014-04-23 16:09:23 +00:00
-> where ( 'indiScoreDate >= (CURDATE() - INTERVAL 5 YEAR)' )
-> group ( 'indiScoreDate' );
2014-04-21 10:39:46 +00:00
$sql2 = $scoresDb -> select ()
2014-05-08 13:01:00 +00:00
-> from ( array ( 'h' => 'scores_surveillance' ), array ( " h. $type " , 'h.encours' , 'h.indiScoreDate' , 'h.sourceModif' ), 'historiques' )
2014-04-23 16:03:30 +00:00
-> where ( 'siren=?' , $siren )
2014-04-23 16:09:23 +00:00
-> where ( 'indiScoreDate >= (CURDATE() - INTERVAL 5 YEAR)' )
-> group ( 'indiScoreDate' );
2014-04-21 10:39:46 +00:00
$query = $scoresDb -> select ()
2014-04-23 16:03:30 +00:00
-> union ( array ( $sql1 , $sql2 ))
-> group ( 'indiScoreDate' )
2014-05-13 20:45:52 +00:00
-> order ( 'indiScoreDate DESC' );
2014-04-21 10:39:46 +00:00
try {
2014-04-23 16:03:30 +00:00
$rows = $scoresDb -> fetchAll ( $query );
2014-04-17 07:49:09 +00:00
} catch ( Exception $e ) {
2014-08-06 20:27:01 +00:00
if ( $this -> User -> idClient == 1 ) {
2014-04-17 07:49:09 +00:00
throw new SoapFault ( 'ERR' , $e -> getMessage ());
} else {
throw new SoapFault ( 'ERR' , " Application error " );
}
}
2014-04-21 10:39:46 +00:00
2014-04-23 05:51:52 +00:00
$motifLib = array (
2014-04-23 16:03:30 +00:00
'ajout' => " Initialisation " ,
'ancien' => " Score trop ancien " ,
'bilans1' => " Publication bilan " ,
'bilans2' => " Publication bilan " ,
'bilansasso' => " Publication bilan Association " ,
'bodacc' => " Publication Bodacc " ,
'collecte' => " Publication JAL ou Greffe " ,
'dirigeants' => " Modification de l'administration " ,
'impayes' => " Informations de paiements " ,
'insee' => " Modification identitaires INSEE " ,
'jour' => " Modifications identitaires " ,
'liens' => " Mise à jour de la structure du groupe " ,
'modifenc' => " Autre modification identitaire " ,
'privileges' => " Mise à jour des privilèges " ,
'regulier' => " Informations de paiements " ,
'rncs' => " Modifications identitaires RNCS " ,
'default' => " Modification identitaire " ,
2014-04-23 05:51:52 +00:00
);
2014-04-21 10:39:46 +00:00
$list = array ();
2014-04-23 16:03:30 +00:00
foreach ( $rows as $row ) {
$item = new ScoresHisto ();
2014-05-09 20:12:44 +00:00
$item -> date = $row -> indiScoreDate ;
2014-04-23 16:03:30 +00:00
$item -> value = $row -> { $type };
2014-05-09 20:12:44 +00:00
$item -> label = $motifLib [ $row -> sourceModif ];
2014-05-08 13:01:00 +00:00
$item -> encours = round ( $row -> encours / 1000 , 1 );
2014-04-23 16:03:30 +00:00
$list [] = $item ;
2014-04-21 10:39:46 +00:00
}
$output = new ScoresHistoReturn ();
$output -> type = $type ;
$output -> nbReponses = count ( $list );
$output -> result = $list ;
return $output ;
2014-04-17 07:49:09 +00:00
}
2014-06-11 15:36:42 +00:00
/**
* Liste des établissements d ' une entreprise
* @ param string $siren Siren de l ' entreprise
* @ param integer $departement Limiter aux établissements du departement
* @ param integer $actif Otpionnel 1 = Uniquements les actifs , 0 = inactifs , Néant = Tous
* @ param integer $position
* @ param integer $nbRep
*
* @ return EtablissementsGeoReturn
*/
public function getEtablissementsGeo ( $siren , $dep = 0 , $actif = - 1 , $position = 0 , $nbRep = 20 )
{
$this -> authenticate ();
$this -> permission ( 'etablissements' );
//Initialisation
if ( empty ( $dep )) { $dep = 0 ; }
if ( ! in_array ( $actif , array ( 0 , 1 ))) { $actif = - 1 ; }
if ( empty ( $position )) { $position = 0 ; }
if ( empty ( $nbRep )) { $nbRep = 20 ; }
$departement = $dep ;
if ( strlen ( $siren ) != 9 || intval ( $siren ) == 0 ) {
$this -> sendError ( '1010' );
}
$iDb = new WDB ();
$iInsee = new MInsee ( $iDb );
$rep = $iInsee -> getEtablissements ( $siren , '' , $position , $nbRep , 200 , $departement , $actif );
$etabs = $rep [ 'reponses' ];
$nbReponses = $rep [ 'nbReponsesTotal' ];
$result = array ();
if ( count ( $etabs ) > 0 ) {
foreach ( $etabs as $nb => $etab ) {
2014-06-17 07:54:38 +00:00
$etablissement = new EtablissementGeo ();
2014-06-11 15:36:42 +00:00
$etablissement -> id = $etab [ 'id' ];
$etablissement -> Siege = $etab [ 'Siege' ];
$etablissement -> Enseigne = $etab [ 'Enseigne' ];
$etablissement -> Adresse = $etab [ 'Adresse' ];
$etablissement -> Adresse2 = $etab [ 'Adresse2' ];
$etablissement -> CP = $etab [ 'CP' ];
$etablissement -> Ville = $etab [ 'Ville' ];
$etablissement -> Tel = $etab [ 'Tel' ];
$etablissement -> Fax = $etab [ 'Fax' ];
$etablissement -> Nic = $etab [ 'Nic' ];
$etablissement -> Actif = $etab [ 'Actif' ];
$etablissement -> NafEtab = $etab [ 'NafEtab' ];
$etablissement -> NafEtabLib = $etab [ 'NafEtabLib' ];
$etablissement -> EffEtTr = $etab [ 'EffEtTr' ];
$etablissement -> EffEtTrLib = $etab [ 'EffEtTrLib' ];
2014-06-17 07:54:38 +00:00
$adresse = $iInsee -> getIdentiteLight ( $siren , $etab [ 'Nic' ]);
2014-06-11 15:36:42 +00:00
require_once 'Metier/partenaires/classMMap.php' ;
$mMap = new MMap ( false , $iDb );
2014-06-17 07:54:38 +00:00
$mMap -> geoCodeAdresse ( $adresse [ 'AdresseNum' ], '' , $adresse [ 'AdresseVoie' ],
$iInsee -> getCodeVoie ( $adresse [ 'AdresseVoie' ]), $adresse [ 'AdresseRue' ],
$etab [ 'CP' ], $adresse [ 'Ville' ], 'France' );
2014-06-11 15:36:42 +00:00
$etablissement -> GeoLatitude = $mMap -> latitudeDec ;
$etablissement -> GeoLongitude = $mMap -> longitudeDec ;
$etablissement -> GeoAltitude = $mMap -> altitude ;
$etablissement -> GeoPrecis = $mMap -> precision ;
$result [] = $etablissement ;
}
}
2014-06-17 07:54:38 +00:00
2014-06-11 15:36:42 +00:00
$this -> wsLog ( 'etablissements' , $siren );
2014-06-17 07:54:38 +00:00
$output = new EtablissementsGeoReturn ();
2014-06-11 15:36:42 +00:00
$output -> nbReponses = $nbReponses ;
$output -> result = $result ;
return $output ;
}
2013-11-05 11:18:30 +00:00
}