diff --git a/library/Metier/Partenaires/MBilans.php b/library/Metier/Partenaires/MBilans.php index 52a14efe..fe6f1254 100644 --- a/library/Metier/Partenaires/MBilans.php +++ b/library/Metier/Partenaires/MBilans.php @@ -349,7 +349,7 @@ class Metier_Partenaires_MBilans * Nombre de bilans maximums retournés * @return array */ - public function listeBilans($accesPartenaire = false, $nbMaxBilans = 0) + public function listeBilans($accesPartenaire = false, $nbMaxBilans = 0, $idClient = 0) { $dateDerDepot = 0; $tabRet = $tabRet2 = $tabRet3 = $tabRet = array(); @@ -358,12 +358,21 @@ class Metier_Partenaires_MBilans if ($this->companyEvenDateStop !== null) { $where.= " AND dateExercice<'".$this->companyEvenDateStop."'"; } + + // --- Si c'est un client qui consulte, alors il ne peut voir que ses bilans confidentiels ou tous les bilans publiques. + // --- 0 : consultation de l'application (calcul du score ...) + // --- 1 : consultation d'un membre de scores et décisions + // --- 147 : consultation d'un opérateur de l'arménie + if ($idClient > 1 && $idClient != 147) { + $where.= " AND (confidentiel_client = ".$idClient." OR confidentiel = 0)"; + } + $where.= " ORDER BY dateExercice DESC, CASE typeBilan WHEN 'N' THEN 1 WHEN 'S' THEN 2 ELSE 3 END"; if ($nbMaxBilans > 0) { $where.= " LIMIT 0, $nbMaxBilans"; } - $fields = "typeBilan, dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaieOrigine, dateInsert, partenaire"; + $fields = "typeBilan, dateProvPartenaire, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaieOrigine, dateInsert, partenaire, confidentiel, confidentiel_client"; $listeNb = 0; try { $listeSql = "SELECT $fields FROM jo.bilans WHERE $where"; @@ -391,6 +400,8 @@ class Metier_Partenaires_MBilans 'dureeExercicePre' => $bil['dureeExercicePre'], 'monnaie' => $bil['monnaieOrigine'], 'source' => $bil['partenaire'], + 'confidentiel' => $bil['confidentiel'], + 'confidentielClient' => $bil['confidentiel_client'], ); $tabTri[''.$bil['dateExercice'].'-'.$bil['typeBilan']] = $bil['typeBilan'].$millesime; } diff --git a/library/WsScore/Entreprise/v0.7/Service.php b/library/WsScore/Entreprise/v0.7/Service.php index f037e887..f1a81cdb 100644 --- a/library/WsScore/Entreprise/v0.7/Service.php +++ b/library/WsScore/Entreprise/v0.7/Service.php @@ -3335,7 +3335,7 @@ class Entreprise extends Scores_Ws_Server if(!in_array($key, array('SIREN', 'DATE_FRAICHE_BILAN', 'DATE_CLOTURE', 'DATE_CLOTURE_PRE', 'DUREE_MOIS', 'DUREE_MOIS_PRE', 'MONNAIE', 'CONSOLIDE', 'MONNAIE_ORI', - 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise'))){ + 'MONNAIE_LIV_UNITE', 'SOURCE', 'devise', 'TOP_CONFIDENTIEL'))){ $resultPoste = new BilanPoste(); $resultPoste->id = $key; $resultPoste->val = $value; diff --git a/library/WsScore/Entreprise/v0.8/Service.php b/library/WsScore/Entreprise/v0.8/Service.php index c52e89fd..26e5b952 100644 --- a/library/WsScore/Entreprise/v0.8/Service.php +++ b/library/WsScore/Entreprise/v0.8/Service.php @@ -852,7 +852,7 @@ class Entreprise extends Scores_Ws_Server $tabPays[$item->codPays3] = $item->libPays; } } - + $tabAct = $tabPar = $tabDir = array(); try { @@ -934,8 +934,8 @@ class Entreprise extends Scores_Ws_Server // Participations $liens = $liensM->getParticipations(null, true); - if (count($liens)>0) { - foreach ( $liens as $item ) { + if (count($liens)>0) { + foreach ( $liens as $item ) { $detail = new Lien(); $detail->id = $item->id; $detail->idFiche = $item->idPar; @@ -959,10 +959,10 @@ class Entreprise extends Scores_Ws_Server $detail->Pvote = $item->Pvote; $detail->MajMin = $item->MajMin; - if ($item->dateUpdate=='0000-00-00 00:00:00'){ - $detail->date = substr($item->dateInsert,0,10); - } else { - $detail->date = substr($item->dateUpdate,0,10); + if ($item->dateUpdate=='0000-00-00 00:00:00'){ + $detail->date = substr($item->dateInsert,0,10); + } else { + $detail->date = substr($item->dateUpdate,0,10); } $nbIdNum = 3; @@ -999,14 +999,14 @@ class Entreprise extends Scores_Ws_Server } } $detail->identification = $refs; - - $tabPar[] = $detail; - } + + $tabPar[] = $detail; + } } //Directions $liens = $liensM->getDirections(true); - if (count($liens)>0) { + if (count($liens)>0) { foreach ( $liens as $item ) { $detail = new LienDirection(); $detail->siren = $item->siren; @@ -1018,11 +1018,11 @@ class Entreprise extends Scores_Ws_Server if (!empty($item->civilite)) { $nom.= $item->civilite.'. '; } - if (!empty($item->nom)) { - $nom.= $item->nom.' '; + if (!empty($item->nom)) { + $nom.= $item->nom.' '; } - if (!empty($item->prenom)) { - $nom.= $item->prenom; + if (!empty($item->prenom)) { + $nom.= $item->prenom; } $detail->dirNom = $nom; $detail->dirNaissLieu = $item->naissance_lieu; @@ -1032,10 +1032,10 @@ class Entreprise extends Scores_Ws_Server } } } catch(Exception $e) { - if ($this->User->idClient==1) { - throw new SoapFault('ERR', $e->getMessage()); - } else { - throw new SoapFault('ERR', "Application error"); + if ($this->User->idClient==1) { + throw new SoapFault('ERR', $e->getMessage()); + } else { + throw new SoapFault('ERR', "Application error"); } } @@ -1049,17 +1049,17 @@ class Entreprise extends Scores_Ws_Server return $output; } - /** - * Retourne les liens financiers pour une entreprise. - * @param int $id Identifiant de référence de l'entreprise - * @param string $type Type de lien (actionnaire|participation) - * @return LiensReturn - */ - public function getLiensById($id, $type = null) - { + /** + * Retourne les liens financiers pour une entreprise. + * @param int $id Identifiant de référence de l'entreprise + * @param string $type Type de lien (actionnaire|participation) + * @return LiensReturn + */ + public function getLiensById($id, $type = null) + { $this->authenticate(); - $this->permission('liens'); - + $this->permission('liens'); + //Load country table try { $sql = "SELECT codPays3, libPays FROM jo.tabPays"; @@ -1081,47 +1081,47 @@ class Entreprise extends Scores_Ws_Server while ($item = $stmt->fetch(\PDO::FETCH_OBJ)) { $tabPays[$item->codPays3] = $item->libPays; } - } - - $tabAct = $tabPar = $tabDir = array(); - - try { + } + + $tabAct = $tabPar = $tabDir = array(); + + try { $liensM = new Metier_Liens_Base(); - $liensM->setId($id); - - // Actionnaires - $liens = $liensM->getActionnaires(null, true); - if (count($liens)>0) { - foreach ( $liens as $item ) { - $detail = new Lien(); - $detail->id = $item->id; - $detail->idFiche = $item->idAct; + $liensM->setId($id); + + // Actionnaires + $liens = $liensM->getActionnaires(null, true); + if (count($liens)>0) { + foreach ( $liens as $item ) { + $detail = new Lien(); + $detail->id = $item->id; + $detail->idFiche = $item->idAct; $detail->nom = $item->RS; - $detail->sigle = $item->sigle; - - $libPays = ''; - if ($item->adresse_pays!='') { - $libPays = array_key_exists($item->adresse_pays, $tabPays) ? - $tabPays[$item->adresse_pays] : $item->adresse_pays; - } else { - $libPays = $tabPays['FRA']; - } - $detail->pays = $libPays; - - if ($item->PpPm=='PP') { - $detail->nom = $item->civilite.' '.$item->nom.' '.$item->prenom; - } - $detail->siren = str_pad($item->siren, 9, "0", STR_PAD_LEFT); - $detail->PDetention = $item->PDetention; - $detail->Pvote = $item->Pvote; - $detail->MajMin = $item->MajMin; - - if ($item->dateUpdate=='0000-00-00 00:00:00'){ - $detail->date = substr($item->dateInsert,0,10); - } else { - $detail->date = substr($item->dateUpdate,0,10); - } - + $detail->sigle = $item->sigle; + + $libPays = ''; + if ($item->adresse_pays!='') { + $libPays = array_key_exists($item->adresse_pays, $tabPays) ? + $tabPays[$item->adresse_pays] : $item->adresse_pays; + } else { + $libPays = $tabPays['FRA']; + } + $detail->pays = $libPays; + + if ($item->PpPm=='PP') { + $detail->nom = $item->civilite.' '.$item->nom.' '.$item->prenom; + } + $detail->siren = str_pad($item->siren, 9, "0", STR_PAD_LEFT); + $detail->PDetention = $item->PDetention; + $detail->Pvote = $item->Pvote; + $detail->MajMin = $item->MajMin; + + if ($item->dateUpdate=='0000-00-00 00:00:00'){ + $detail->date = substr($item->dateInsert,0,10); + } else { + $detail->date = substr($item->dateUpdate,0,10); + } + $nbIdNum = 3; $refs = array(); for ($i=0;$i<$nbIdNum;$i++) { @@ -1155,45 +1155,45 @@ class Entreprise extends Scores_Ws_Server $refs[] = $ref; } } - $detail->identification = $refs; - - $tabAct[] = $detail; - } - } - - // Participations - $liens = $liensM->getParticipations(null, true); - if (count($liens)>0) { - foreach ( $liens as $item ) { - $detail = new Lien(); - $detail->id = $item->id; - $detail->idFiche = $item->idPar; + $detail->identification = $refs; + + $tabAct[] = $detail; + } + } + + // Participations + $liens = $liensM->getParticipations(null, true); + if (count($liens)>0) { + foreach ( $liens as $item ) { + $detail = new Lien(); + $detail->id = $item->id; + $detail->idFiche = $item->idPar; $detail->nom = $item->RS; - $detail->sigle = $item->sigle; - - $libPays = ''; - if ($item->adresse_pays!='') { - $libPays = array_key_exists($item->adresse_pays, $tabPays) ? - $tabPays[$item->adresse_pays] : $item->adresse_pays; - } else { - $libPays = $tabPays['FRA']; - } - $detail->pays = $libPays; - - if ($item->PpPm=='PP') { - $detail->nom = $item->civilite.' '.$item->nom.' '.$item->prenom; - } - $detail->siren = str_pad($item->siren, 9, "0", STR_PAD_LEFT); - $detail->PDetention = $item->PDetention; - $detail->Pvote = $item->Pvote; - $detail->MajMin = $item->MajMin; - - if ($item->dateUpdate=='0000-00-00 00:00:00'){ - $detail->date = substr($item->dateInsert,0,10); - } else { - $detail->date = substr($item->dateUpdate,0,10); - } - + $detail->sigle = $item->sigle; + + $libPays = ''; + if ($item->adresse_pays!='') { + $libPays = array_key_exists($item->adresse_pays, $tabPays) ? + $tabPays[$item->adresse_pays] : $item->adresse_pays; + } else { + $libPays = $tabPays['FRA']; + } + $detail->pays = $libPays; + + if ($item->PpPm=='PP') { + $detail->nom = $item->civilite.' '.$item->nom.' '.$item->prenom; + } + $detail->siren = str_pad($item->siren, 9, "0", STR_PAD_LEFT); + $detail->PDetention = $item->PDetention; + $detail->Pvote = $item->Pvote; + $detail->MajMin = $item->MajMin; + + if ($item->dateUpdate=='0000-00-00 00:00:00'){ + $detail->date = substr($item->dateInsert,0,10); + } else { + $detail->date = substr($item->dateUpdate,0,10); + } + $nbIdNum = 3; $refs = array(); for ($i=0;$i<$nbIdNum;$i++) { @@ -1220,62 +1220,62 @@ class Entreprise extends Scores_Ws_Server } } } else { - $ref->label = 'Identifiant local'; + $ref->label = 'Identifiant local'; $ref->type = 1; } $refs[] = $ref; } } - $detail->identification = $refs; - - $tabPar[] = $detail; - } - } - - //Directions - $liens = $liensM->getDirections(true); - if (count($liens)>0) { - foreach ( $liens as $item ) { - $detail = new LienDirection(); - $detail->siren = $item->siren; - $detail->nom = $item->raisonSociale; - $detail->fonction = $item->fonction_lib; - $detail->dirRS = $item->dirRS; - - $nom = ''; - if (!empty($item->civilite)) { - $nom.= $item->civilite.'. '; - } - if (!empty($item->nom)) { - $nom.= $item->nom.' '; - } - if (!empty($item->prenom)) { - $nom.= $item->prenom; - } - $detail->dirNom = $nom; - $detail->dirNaissLieu = $item->naissance_lieu; - $detail->dirNaissDate = $item->naissance_date; - - $tabDir[] = $detail; - } - } - } catch(Exception $e) { - if ($this->User->idClient==1) { - throw new SoapFault('ERR', $e->getMessage()); - } else { - throw new SoapFault('ERR', "Application error"); - } - } - - $output = new LiensReturn(); - $output->actionnaires = $tabAct; - $output->participations = $tabPar; + $detail->identification = $refs; + + $tabPar[] = $detail; + } + } + + //Directions + $liens = $liensM->getDirections(true); + if (count($liens)>0) { + foreach ( $liens as $item ) { + $detail = new LienDirection(); + $detail->siren = $item->siren; + $detail->nom = $item->raisonSociale; + $detail->fonction = $item->fonction_lib; + $detail->dirRS = $item->dirRS; + + $nom = ''; + if (!empty($item->civilite)) { + $nom.= $item->civilite.'. '; + } + if (!empty($item->nom)) { + $nom.= $item->nom.' '; + } + if (!empty($item->prenom)) { + $nom.= $item->prenom; + } + $detail->dirNom = $nom; + $detail->dirNaissLieu = $item->naissance_lieu; + $detail->dirNaissDate = $item->naissance_date; + + $tabDir[] = $detail; + } + } + } catch(Exception $e) { + if ($this->User->idClient==1) { + throw new SoapFault('ERR', $e->getMessage()); + } else { + throw new SoapFault('ERR', "Application error"); + } + } + + $output = new LiensReturn(); + $output->actionnaires = $tabAct; + $output->participations = $tabPar; $output->directions = $tabDir; $this->wsLog('liens', '', $id); - - return $output; + + return $output; } /** @@ -1341,10 +1341,10 @@ class Entreprise extends Scores_Ws_Server //@todo : Utiliser le libellé du pays $output->adressePays = $result['adresse_pays']; - if ($result['dateUpdate']=='0000-00-00 00:00:00'){ - $output->date = substr($result['dateInsert'],0,10); - } else { - $output->date = substr($result['dateUpdate'],0,10); + if ($result['dateUpdate']=='0000-00-00 00:00:00'){ + $output->date = substr($result['dateInsert'],0,10); + } else { + $output->date = substr($result['dateUpdate'],0,10); } $refs = array(); @@ -1506,263 +1506,263 @@ class Entreprise extends Scores_Ws_Server return $output; } - /** - * Retourne la liste des annonces légales relative à une entreprise - * - * @todo Revoir cette fonction pour la faire marcher avec les associations - * - * @param string $siren Siren de l'entreprise - * @param integer $filtre 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp - * @param string $idAnn Identifiant de l'annonce - * @param integer $position - * @param integer $nbRep - * @return AnnoncesReturn - */ - protected function getAnnonces($siren, $filtre = 1, $idAnn = '', $position = 0, $nbRep = 100) - { - $this->authenticate(); - $this->permission('annonces'); - - //Initialisation - if (empty($filtre)) { $filtre = 1; } - if (empty($idAnn)) { $idAnn = ''; } - if (empty($position)) { $position = 0; } - if (empty($nbRep)) { $nbRep = 100; } - - //Valeur max - if($nbRep > 200) { $nbRep = 200; } - - $this->logger->info("Annonces demandées pour $siren ($filtre, $idAnn)"); - - $liste = array(); - - if (strlen($siren)!=9) { - $this->logger->warning( "Siren/Siret $siren incorrect"); - $this->sendError('1010'); - } elseif (intval($siren)==0 && $idAnn=='') { - $this->logger->warning( "Siren $siren ou annonce $idAnn inexistant"); - $this->sendError('1010'); - } - - $iInsee = new Metier_Insee_MInsee(); - /* - if ($siren>100 && $filtre==3) $asso=true; - else { - $asso=false; - $tabIdentite=$this->iInsee->getIdentiteLight($siren); - if ($tabIdentite['FJ']>90 && $tabIdentite['FJ']<94 || - $tabIdentite['FJ']>9000 && $tabIdentite['FJ']<9400) $asso=true; - }*/ - - //@todo : Connaitre le nombre d'annonce - - /* - getAnnoncesBoamp => Avis de marché, Avis d'attribution - getAnnoncesAsso => Rien de particulier - getAnnoncesBalo => Rien de particulier - getAnnoncesLegales => Plusieurs requetes SQL suivant la situation - */ - - if ($idAnn=='') { - $anns=$iInsee->getAnnoncesLegales($siren); - $annsB=$iInsee->getAnnoncesBalo($siren); - $annsA=$iInsee->getAnnoncesAsso($siren); - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - } elseif ($filtre==1) { - $anns=$iInsee->getAnnoncesLegales($siren, $idAnn); - } elseif ($filtre==2) { - $annsB=$iInsee->getAnnoncesBalo($siren, $idAnn); - } elseif ($filtre==3) { - $annsA=$iInsee->getAnnoncesAsso($siren, $idAnn); - } elseif ($filtre==4) { - $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); - } - - if (empty($anns) && empty($annsB) && empty($annsA) && empty($annsM)) - { - $this->logger->warning( "Aucune annonce pour le siren $siren (source=$filtre, id=$idAnn)"); - $error->errnum = 102; - $error->errmsg = 'Siren inexistant B '.$siren.' '.$idAnn; - } - else - { - foreach ($anns as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - $annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = $ann['texteRectificatif']; - $annonce->texteAnnonce = $ann['texteAnnonce']; - $annonce->libFJ = $ann['libFJ']; - $annonce->codFJ = $ann['codFJ']; - $annonce->capital = $ann['capital']; - $annonce->capitalDev = $ann['capitalDev']; - - $annonce->raisonSociale = $ann['raisonSociale']; - $annonce->nomCommercial = $ann['nomCommercial']; - $annonce->sigle = $ann['sigle']; - $annonce->adresse = $ann['adresse']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - - if (is_array($annsB)) - { - foreach ($annsB as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = $ann['texteRectificatif']; - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsA)) - { - foreach ($annsA as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = $ann['texteRectificatif']; - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - //@todo : date - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - - if (is_array($annsM)) - { - foreach ($annsM as $nb=>$ann) - { - $evens = array(); - foreach ($ann['evenements'] as $tabEven) - { - $even = new AnnonceEvenement(); - $even->CodeEven = $tabEven['CodeEven']; - $even->LibEven = $tabEven['LibEven']; - $evens[] = $even; - } - - $annonce = new Annonce(); - $annonce->id = $ann['id']; - $annonce->BodaccCode = $ann['BodaccCode']; - $annonce->BodaccNum = $ann['BodaccNum']; - $annonce->NumAnnonce = $ann['NumAnnonce']; - $annonce->DateParution = $ann['DateParution']; //@todo : date - $annonce->Departement = $ann['Departement']; - $annonce->Tribunal = $ann['Tribunal']; - //$annonce->TribunalCode = $ann['TribunalCode']; - $annonce->TribunalSiret = $ann['TribunalSiret']; - $annonce->Rubrique = $ann['Rubrique']; - $annonce->typeAnnonce = $ann['typeAnnonce']; - $annonce->texteRectificatif = $ann['texteRectificatif']; - $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); - //$annonce->libFJ = $ann['libFJ']; - //$annonce->codFJ = $ann['codFJ']; - //$annonce->capital = $ann['capital']; - //$annonce->capitalDev = $ann['capitalDev']; - $annonce->dateEffet = $ann['dateEffet']; //@todo : date - $annonce->dateJugement = $ann['dateJugement']; //@todo : date - $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date - $annonce->evenements = $evens; - $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; - - $liste[] = $annonce; - } - } - } - - $nbReponses = count($liste); - if ($nbReponses>0){ - //$liste = array_slice($liste, $position, $nbRep); - } - $this->logger->info( "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($liste)); - $this->wsLog('annonces',$siren,$filtre.'/'.$idAnn); - - $output = new AnnoncesReturn(); - $output->nbReponses = $nbReponses; - $output->result = $liste; - return $output; + /** + * Retourne la liste des annonces légales relative à une entreprise + * + * @todo Revoir cette fonction pour la faire marcher avec les associations + * + * @param string $siren Siren de l'entreprise + * @param integer $filtre 1=BODACC, 2=B.A.L.O, 3=JO Association, 4=Boamp + * @param string $idAnn Identifiant de l'annonce + * @param integer $position + * @param integer $nbRep + * @return AnnoncesReturn + */ + protected function getAnnonces($siren, $filtre = 1, $idAnn = '', $position = 0, $nbRep = 100) + { + $this->authenticate(); + $this->permission('annonces'); + + //Initialisation + if (empty($filtre)) { $filtre = 1; } + if (empty($idAnn)) { $idAnn = ''; } + if (empty($position)) { $position = 0; } + if (empty($nbRep)) { $nbRep = 100; } + + //Valeur max + if($nbRep > 200) { $nbRep = 200; } + + $this->logger->info("Annonces demandées pour $siren ($filtre, $idAnn)"); + + $liste = array(); + + if (strlen($siren)!=9) { + $this->logger->warning( "Siren/Siret $siren incorrect"); + $this->sendError('1010'); + } elseif (intval($siren)==0 && $idAnn=='') { + $this->logger->warning( "Siren $siren ou annonce $idAnn inexistant"); + $this->sendError('1010'); + } + + $iInsee = new Metier_Insee_MInsee(); + /* + if ($siren>100 && $filtre==3) $asso=true; + else { + $asso=false; + $tabIdentite=$this->iInsee->getIdentiteLight($siren); + if ($tabIdentite['FJ']>90 && $tabIdentite['FJ']<94 || + $tabIdentite['FJ']>9000 && $tabIdentite['FJ']<9400) $asso=true; + }*/ + + //@todo : Connaitre le nombre d'annonce + + /* + getAnnoncesBoamp => Avis de marché, Avis d'attribution + getAnnoncesAsso => Rien de particulier + getAnnoncesBalo => Rien de particulier + getAnnoncesLegales => Plusieurs requetes SQL suivant la situation + */ + + if ($idAnn=='') { + $anns=$iInsee->getAnnoncesLegales($siren); + $annsB=$iInsee->getAnnoncesBalo($siren); + $annsA=$iInsee->getAnnoncesAsso($siren); + $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); + } elseif ($filtre==1) { + $anns=$iInsee->getAnnoncesLegales($siren, $idAnn); + } elseif ($filtre==2) { + $annsB=$iInsee->getAnnoncesBalo($siren, $idAnn); + } elseif ($filtre==3) { + $annsA=$iInsee->getAnnoncesAsso($siren, $idAnn); + } elseif ($filtre==4) { + $annsM=$iInsee->getAnnoncesBoamp($siren, $idAnn); + } + + if (empty($anns) && empty($annsB) && empty($annsA) && empty($annsM)) + { + $this->logger->warning( "Aucune annonce pour le siren $siren (source=$filtre, id=$idAnn)"); + $error->errnum = 102; + $error->errmsg = 'Siren inexistant B '.$siren.' '.$idAnn; + } + else + { + foreach ($anns as $nb=>$ann) + { + $evens = array(); + foreach ($ann['evenements'] as $tabEven) + { + $even = new AnnonceEvenement(); + $even->CodeEven = $tabEven['CodeEven']; + $even->LibEven = $tabEven['LibEven']; + $evens[] = $even; + } + $annonce = new Annonce(); + $annonce->id = $ann['id']; + $annonce->BodaccCode = $ann['BodaccCode']; + $annonce->BodaccNum = $ann['BodaccNum']; + $annonce->NumAnnonce = $ann['NumAnnonce']; + $annonce->DateParution = $ann['DateParution']; //@todo : date + $annonce->Departement = $ann['Departement']; + $annonce->Tribunal = $ann['Tribunal']; + $annonce->TribunalCode = $ann['TribunalCode']; + $annonce->TribunalSiret = $ann['TribunalSiret']; + $annonce->Rubrique = $ann['Rubrique']; + $annonce->typeAnnonce = $ann['typeAnnonce']; + $annonce->texteRectificatif = $ann['texteRectificatif']; + $annonce->texteAnnonce = $ann['texteAnnonce']; + $annonce->libFJ = $ann['libFJ']; + $annonce->codFJ = $ann['codFJ']; + $annonce->capital = $ann['capital']; + $annonce->capitalDev = $ann['capitalDev']; + + $annonce->raisonSociale = $ann['raisonSociale']; + $annonce->nomCommercial = $ann['nomCommercial']; + $annonce->sigle = $ann['sigle']; + $annonce->adresse = $ann['adresse']; + $annonce->dateEffet = $ann['dateEffet']; //@todo : date + $annonce->dateJugement = $ann['dateJugement']; //@todo : date + $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date + $annonce->evenements = $evens; + $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; + + $liste[] = $annonce; + } + + if (is_array($annsB)) + { + foreach ($annsB as $nb=>$ann) + { + $evens = array(); + foreach ($ann['evenements'] as $tabEven) + { + $even = new AnnonceEvenement(); + $even->CodeEven = $tabEven['CodeEven']; + $even->LibEven = $tabEven['LibEven']; + $evens[] = $even; + } + $annonce = new Annonce(); + $annonce->id = $ann['id']; + $annonce->BodaccCode = $ann['BodaccCode']; + $annonce->BodaccNum = $ann['BodaccNum']; + $annonce->NumAnnonce = $ann['NumAnnonce']; + $annonce->DateParution = $ann['DateParution']; //@todo : date + $annonce->Departement = $ann['Departement']; + $annonce->Tribunal = $ann['Tribunal']; + //$annonce->TribunalCode = $ann['TribunalCode']; + $annonce->TribunalSiret = $ann['TribunalSiret']; + $annonce->Rubrique = $ann['Rubrique']; + $annonce->typeAnnonce = $ann['typeAnnonce']; + $annonce->texteRectificatif = $ann['texteRectificatif']; + $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); + //$annonce->libFJ = $ann['libFJ']; + //$annonce->codFJ = $ann['codFJ']; + //$annonce->capital = $ann['capital']; + //$annonce->capitalDev = $ann['capitalDev']; + $annonce->dateEffet = $ann['dateEffet']; //@todo : date + $annonce->dateJugement = $ann['dateJugement']; //@todo : date + $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date + $annonce->evenements = $evens; + $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; + + $liste[] = $annonce; + } + } + + if (is_array($annsA)) + { + foreach ($annsA as $nb=>$ann) + { + $evens = array(); + foreach ($ann['evenements'] as $tabEven) + { + $even = new AnnonceEvenement(); + $even->CodeEven = $tabEven['CodeEven']; + $even->LibEven = $tabEven['LibEven']; + $evens[] = $even; + } + + $annonce = new Annonce(); + $annonce->id = $ann['id']; + $annonce->BodaccCode = $ann['BodaccCode']; + $annonce->BodaccNum = $ann['BodaccNum']; + $annonce->NumAnnonce = $ann['NumAnnonce']; + $annonce->DateParution = $ann['DateParution']; //@todo : date + $annonce->Departement = $ann['Departement']; + $annonce->Tribunal = $ann['Tribunal']; + //$annonce->TribunalCode = $ann['TribunalCode']; + $annonce->TribunalSiret = $ann['TribunalSiret']; + $annonce->Rubrique = $ann['Rubrique']; + $annonce->typeAnnonce = $ann['typeAnnonce']; + $annonce->texteRectificatif = $ann['texteRectificatif']; + $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); + //$annonce->libFJ = $ann['libFJ']; + //$annonce->codFJ = $ann['codFJ']; + //$annonce->capital = $ann['capital']; + //$annonce->capitalDev = $ann['capitalDev']; + //@todo : date + $annonce->dateEffet = $ann['dateEffet']; //@todo : date + $annonce->dateJugement = $ann['dateJugement']; //@todo : date + $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date + $annonce->evenements = $evens; + $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; + + $liste[] = $annonce; + } + } + + if (is_array($annsM)) + { + foreach ($annsM as $nb=>$ann) + { + $evens = array(); + foreach ($ann['evenements'] as $tabEven) + { + $even = new AnnonceEvenement(); + $even->CodeEven = $tabEven['CodeEven']; + $even->LibEven = $tabEven['LibEven']; + $evens[] = $even; + } + + $annonce = new Annonce(); + $annonce->id = $ann['id']; + $annonce->BodaccCode = $ann['BodaccCode']; + $annonce->BodaccNum = $ann['BodaccNum']; + $annonce->NumAnnonce = $ann['NumAnnonce']; + $annonce->DateParution = $ann['DateParution']; //@todo : date + $annonce->Departement = $ann['Departement']; + $annonce->Tribunal = $ann['Tribunal']; + //$annonce->TribunalCode = $ann['TribunalCode']; + $annonce->TribunalSiret = $ann['TribunalSiret']; + $annonce->Rubrique = $ann['Rubrique']; + $annonce->typeAnnonce = $ann['typeAnnonce']; + $annonce->texteRectificatif = $ann['texteRectificatif']; + $annonce->texteAnnonce = utf8_encode($ann['texteAnnonce']); + //$annonce->libFJ = $ann['libFJ']; + //$annonce->codFJ = $ann['codFJ']; + //$annonce->capital = $ann['capital']; + //$annonce->capitalDev = $ann['capitalDev']; + $annonce->dateEffet = $ann['dateEffet']; //@todo : date + $annonce->dateJugement = $ann['dateJugement']; //@todo : date + $annonce->dateInsertionSD = $ann['dateInsertionSD']; //@todo : date + $annonce->evenements = $evens; + $annonce->Lien_Annonce_Pdf = $ann['Lien_Annonce_Pdf']; + + $liste[] = $annonce; + } + } + } + + $nbReponses = count($liste); + if ($nbReponses>0){ + //$liste = array_slice($liste, $position, $nbRep); + } + $this->logger->info( "Nb Annonces $filtre retournées pour $siren (source=$filtre, id=$idAnn) = ". count($liste)); + $this->wsLog('annonces',$siren,$filtre.'/'.$idAnn); + + $output = new AnnoncesReturn(); + $output->nbReponses = $nbReponses; + $output->result = $liste; + return $output; } /** @@ -2104,13 +2104,13 @@ class Entreprise extends Scores_Ws_Server //Add acheteur $identite = $iInsee->getIdentiteLight($siren); - $entite = new AnnonceEntite(); - $entite->siret = $identite['Siret']; - $entite->raisonSociale = $identite['Nom']; - $even = new AnnonceEvenement(); - //$even->CodeEven = ''; - $even->LibEven = 'Acheteur'; - $entite->event = $even; + $entite = new AnnonceEntite(); + $entite->siret = $identite['Siret']; + $entite->raisonSociale = $identite['Nom']; + $even = new AnnonceEvenement(); + //$even->CodeEven = ''; + $even->LibEven = 'Acheteur'; + $entite->event = $even; $entites[] = $entite; //Search titulaire @@ -2549,9 +2549,9 @@ class Entreprise extends Scores_Ws_Server $this->permission('VALORISATION'); //Initialisation - $accesPartenaire = true; - if (APPLICATION_ENV == 'development') { - $accesPartenaire = false; + $accesPartenaire = true; + if (APPLICATION_ENV == 'development') { + $accesPartenaire = false; } if (empty($nic)) { $nic = 0; @@ -2786,20 +2786,20 @@ class Entreprise extends Scores_Ws_Server //Ratios global $tva, $mBil, $efftr, $tabInfla; - require_once 'Metier/Scores/MRatios.php'; + require_once 'Metier/Scores/MRatios.php'; $mBil = new Metier_Partenaires_MBilans(); - $mBil->setSiren($siren); - $tabBilans = $mBil->listeBilans($accesPartenaire, 5); - $nbBilans = count($tabBilans); - $tabBilan = $tabBil = array(); + $mBil->setSiren($siren); + $tabBilans = $mBil->listeBilans($accesPartenaire, 5); + $nbBilans = count($tabBilans); + $tabBilan = $tabBil = array(); if ($nbBilans>0) { - $iInsee = new Metier_Insee_MInsee(); - $tabIdentite = $iInsee->getIdentiteEntreprise($siren,0,0,false,false); - $this->logger->info("Liste des Ratios demandée pour $siren après getIdentiteEntreprise"); - $naf = $tabIdentite['NafEnt']; - $nafLib = $tabIdentite['NafEntLib']; - $efftr = $tabIdentite['Effectif']*1; + $iInsee = new Metier_Insee_MInsee(); + $tabIdentite = $iInsee->getIdentiteEntreprise($siren,0,0,false,false); + $this->logger->info("Liste des Ratios demandée pour $siren après getIdentiteEntreprise"); + $naf = $tabIdentite['NafEnt']; + $nafLib = $tabIdentite['NafEntLib']; + $efftr = $tabIdentite['Effectif']*1; $fj = $tabIdentite['FJ']; $i = 0; foreach ($tabBilans as $millesime => $item) { @@ -2818,141 +2818,141 @@ class Entreprise extends Scores_Ws_Server } $mRatios = new Metier_Scores_MRatios(); $mRatios->setTrancheEffectif($efftr); - $tabRatios = $mRatios->calcul($tabBilan); + $tabRatios = $mRatios->calcul($tabBilan); } - - $nbRatios = count($tabRatios); - $this->logger->info("Liste des Ratios demandée pour $siren après calculRatios ($nbRatios)"); - - $tabAnnees = array(); - if ( $nbRatios > 0 ) { - foreach ( $tabRatios as $i=>$R ) { - //Informations sur le bilan - $bilansInfos = new RatiosBilansInfos(); - $bilansInfos->dateCloture = $tabBilan[$i]['DATE_CLOTURE']; //@todo : date - $bilansInfos->duree = $tabBilan[$i]['DUREE_MOIS']; - $bilansInfos->devise = $tabBilan[$i]['MONNAIE']; - $bilansInfos->typeBilan = $tabBilan[$i]['CONSOLIDE']; - $bilansInfos->unite = 'U'; - if ( substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900 ){ - $tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4); - } - - $tabRatiosEntrep = array(); - $tabRatiosEntrepEvol = array(); - foreach ( $R as $Ridx=>$Rmont ) { - if ($Rmont<>'NS') { - if ( $tabBorneMin[$Ridx]<>'' && $Rmont<$tabBorneMin[$Ridx] ){ - $Rmont='<'.$tabBorneMin[$Ridx]; - } elseif ( $tabBorneMax[$Ridx]<>'' && $Rmont>$tabBorneMax[$Ridx] ){ - $Rmont='>'.$tabBorneMax[$Ridx]; - } - } - - // RatiosEntrep - $ratiosEntrep = new Ratios(); - if (substr($Rmont,0,1)=='N' || substr($Rmont,0,1)=='<' || substr($Rmont,0,1)=='>'){ - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = $Rmont; - } else { - $ratiosEntrep->id = 'r'.$Ridx; - $ratiosEntrep->val = round($Rmont,2); - } - $tabRatiosEntrep[] = $ratiosEntrep; - - if ( ( $tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1]) && ($tabBilan[$i+1]['CONSOLIDE']=='S' - || ($tabBilan[$i+1]['CONSOLIDE']=='N' && $tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']) ) ) - || ( $tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N' - || ($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])) ) - ) { - $Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]); - } - elseif ( ( $tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1]) && ($tabBilan[$i+2]['CONSOLIDE']=='S' - || ($tabBilan[$i+2]['CONSOLIDE']=='N' && $tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])) ) - || ( $tabBilan[$i]['CONSOLIDE']=='N' && isset($tabRatios[$i+1]) && ($tabBilan[$i+2]['CONSOLIDE']=='N' - || ($tabBilan[$i+2]['CONSOLIDE']=='S'&& $tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])) ) - ) { - $Rmont = (($R[$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]); - } else { - $Rmont = 'NS'; - } - - // RatiosEntrepEvol - $ratiosEntrepEvol = new Ratios(); - if ($Rmont=='NS' || $Rmont<-800 || $Rmont>800){ - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = 'NS'; - } else { - $ratiosEntrepEvol->id = 'r'.$Ridx; - $ratiosEntrepEvol->val = number_format($Rmont,2,',',' '); - } - $tabRatiosEntrepEvol[] = $ratiosEntrepEvol; - } - $bilansInfos->RatiosEntrep = $tabRatiosEntrep; - $bilansInfos->RatiosEntrepEvol = $tabRatiosEntrepEvol; - $tabBilansR[] = $bilansInfos; - } - } - $this->logger->info("Liste des Ratios demandée pour $siren après EVOLUTION"); - - // Tableau des ratios secteurs - if (strlen($naf)>4) $strNaf = " AND naf5='$naf' "; - else $strNaf = " AND naf4='$naf' "; - $strAnnees = implode(',', $tabAnnees); - - $tabRatiosSecteurs = array(); - - $tabAnnees = array_unique($tabAnnees); - - if ( count($tabAnnees)>0 ) { - $iDb = new Metier_Util_Db(); - $tabTmp = $iDb->select('jo.ratios_secteurs', - 'annee, naf5, naf4, id, (montant/nombre) AS ratio, nombre', - "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC", - false, MYSQL_ASSOC); - - $nbRatiosSec = 0; - foreach($tabAnnees as $annee) { - $ratiosSecteur = new RatiosSecteur(); - $ratiosSecteur->annee = $annee; - foreach ($tabTmp as $tmp) - { - if ($tmp['annee']== $annee) - { - $Ridx = $tmp['id']; - if ($tmp['nombre']>$nbRatiosSec){ - $nbRatiosSec = $tmp['nombre']; - } - - $unite = $tabFormulesInfos[$Ridx]['unite']; - if ($unite=='EUR'){ - $montant = round($tmp['ratio']*1000); - } else { - $montant = round($tmp['ratio']); - } - if ($tabBorneMin[$Ridx]<>'' && $montant<$tabBorneMin[$Ridx]){ - $montant='<'.$tabBorneMin[$Ridx]; - } elseif ($tabBorneMax[$Ridx]<>'' && $montant>$tabBorneMax[$Ridx]){ - $montant='>'.$tabBorneMax[$Ridx]; - } - - $ratiosSecteurListe = new Ratios(); - if (substr($montant,0,1)=='N' || substr($montant,0,1)=='<' || substr($montant,0,1)=='>'){ - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = $montant; - } else { - $ratiosSecteurListe->id = 'r'.$Ridx; - $ratiosSecteurListe->val = round($montant,2); - } - $ratiosSecteur->liste[] = $ratiosSecteurListe; - } - } - $tabRatiosSecteurs[] = $ratiosSecteur; - } - } - $output->RatiosBilansInfos = $tabBilansR; - $output->RatiosInfos = $tabRatiosInfos; + $nbRatios = count($tabRatios); + $this->logger->info("Liste des Ratios demandée pour $siren après calculRatios ($nbRatios)"); + + $tabAnnees = array(); + if ( $nbRatios > 0 ) { + foreach ( $tabRatios as $i=>$R ) { + //Informations sur le bilan + $bilansInfos = new RatiosBilansInfos(); + $bilansInfos->dateCloture = $tabBilan[$i]['DATE_CLOTURE']; //@todo : date + $bilansInfos->duree = $tabBilan[$i]['DUREE_MOIS']; + $bilansInfos->devise = $tabBilan[$i]['MONNAIE']; + $bilansInfos->typeBilan = $tabBilan[$i]['CONSOLIDE']; + $bilansInfos->unite = 'U'; + if ( substr($tabBilan[$i]['DATE_CLOTURE'],0,4)>1900 ){ + $tabAnnees[$i]=substr($tabBilan[$i]['DATE_CLOTURE'],0,4); + } + + $tabRatiosEntrep = array(); + $tabRatiosEntrepEvol = array(); + foreach ( $R as $Ridx=>$Rmont ) { + if ($Rmont<>'NS') { + if ( $tabBorneMin[$Ridx]<>'' && $Rmont<$tabBorneMin[$Ridx] ){ + $Rmont='<'.$tabBorneMin[$Ridx]; + } elseif ( $tabBorneMax[$Ridx]<>'' && $Rmont>$tabBorneMax[$Ridx] ){ + $Rmont='>'.$tabBorneMax[$Ridx]; + } + } + + // RatiosEntrep + $ratiosEntrep = new Ratios(); + if (substr($Rmont,0,1)=='N' || substr($Rmont,0,1)=='<' || substr($Rmont,0,1)=='>'){ + $ratiosEntrep->id = 'r'.$Ridx; + $ratiosEntrep->val = $Rmont; + } else { + $ratiosEntrep->id = 'r'.$Ridx; + $ratiosEntrep->val = round($Rmont,2); + } + $tabRatiosEntrep[] = $ratiosEntrep; + + if ( ( $tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1]) && ($tabBilan[$i+1]['CONSOLIDE']=='S' + || ($tabBilan[$i+1]['CONSOLIDE']=='N' && $tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE']) ) ) + || ( $tabBilan[$i]['CONSOLIDE']=='N'&&isset($tabRatios[$i+1])&&($tabBilan[$i+1]['CONSOLIDE']=='N' + || ($tabBilan[$i+1]['CONSOLIDE']=='S'&&$tabBilan[$i+1]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])) ) + ) { + $Rmont=(($R[$Ridx]-$tabRatios[$i+1][$Ridx])*100)/abs($tabRatios[$i+1][$Ridx]); + } + elseif ( ( $tabBilan[$i]['CONSOLIDE']=='S' && isset($tabRatios[$i+1]) && ($tabBilan[$i+2]['CONSOLIDE']=='S' + || ($tabBilan[$i+2]['CONSOLIDE']=='N' && $tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])) ) + || ( $tabBilan[$i]['CONSOLIDE']=='N' && isset($tabRatios[$i+1]) && ($tabBilan[$i+2]['CONSOLIDE']=='N' + || ($tabBilan[$i+2]['CONSOLIDE']=='S'&& $tabBilan[$i+2]['DATE_CLOTURE']<>$tabBilan[$i]['DATE_CLOTURE'])) ) + ) { + $Rmont = (($R[$Ridx]-$tabRatios[$i+2][$Ridx])*100)/abs($tabRatios[$i+2][$Ridx]); + } else { + $Rmont = 'NS'; + } + + // RatiosEntrepEvol + $ratiosEntrepEvol = new Ratios(); + if ($Rmont=='NS' || $Rmont<-800 || $Rmont>800){ + $ratiosEntrepEvol->id = 'r'.$Ridx; + $ratiosEntrepEvol->val = 'NS'; + } else { + $ratiosEntrepEvol->id = 'r'.$Ridx; + $ratiosEntrepEvol->val = number_format($Rmont,2,',',' '); + } + $tabRatiosEntrepEvol[] = $ratiosEntrepEvol; + } + $bilansInfos->RatiosEntrep = $tabRatiosEntrep; + $bilansInfos->RatiosEntrepEvol = $tabRatiosEntrepEvol; + $tabBilansR[] = $bilansInfos; + } + } + $this->logger->info("Liste des Ratios demandée pour $siren après EVOLUTION"); + + // Tableau des ratios secteurs + if (strlen($naf)>4) $strNaf = " AND naf5='$naf' "; + else $strNaf = " AND naf4='$naf' "; + $strAnnees = implode(',', $tabAnnees); + + $tabRatiosSecteurs = array(); + + $tabAnnees = array_unique($tabAnnees); + + if ( count($tabAnnees)>0 ) { + $iDb = new Metier_Util_Db(); + $tabTmp = $iDb->select('jo.ratios_secteurs', + 'annee, naf5, naf4, id, (montant/nombre) AS ratio, nombre', + "1 $strNaf AND annee IN ($strAnnees) ORDER BY annee DESC, id ASC", + false, MYSQL_ASSOC); + + $nbRatiosSec = 0; + foreach($tabAnnees as $annee) { + $ratiosSecteur = new RatiosSecteur(); + $ratiosSecteur->annee = $annee; + foreach ($tabTmp as $tmp) + { + if ($tmp['annee']== $annee) + { + $Ridx = $tmp['id']; + if ($tmp['nombre']>$nbRatiosSec){ + $nbRatiosSec = $tmp['nombre']; + } + + $unite = $tabFormulesInfos[$Ridx]['unite']; + if ($unite=='EUR'){ + $montant = round($tmp['ratio']*1000); + } else { + $montant = round($tmp['ratio']); + } + if ($tabBorneMin[$Ridx]<>'' && $montant<$tabBorneMin[$Ridx]){ + $montant='<'.$tabBorneMin[$Ridx]; + } elseif ($tabBorneMax[$Ridx]<>'' && $montant>$tabBorneMax[$Ridx]){ + $montant='>'.$tabBorneMax[$Ridx]; + } + + $ratiosSecteurListe = new Ratios(); + if (substr($montant,0,1)=='N' || substr($montant,0,1)=='<' || substr($montant,0,1)=='>'){ + $ratiosSecteurListe->id = 'r'.$Ridx; + $ratiosSecteurListe->val = $montant; + } else { + $ratiosSecteurListe->id = 'r'.$Ridx; + $ratiosSecteurListe->val = round($montant,2); + } + $ratiosSecteur->liste[] = $ratiosSecteurListe; + } + } + $tabRatiosSecteurs[] = $ratiosSecteur; + } + } + + $output->RatiosBilansInfos = $tabBilansR; + $output->RatiosInfos = $tabRatiosInfos; $output->RatiosSecteur = $tabRatiosSecteurs; $this->wsLog('valorisation',$siren); @@ -3960,16 +3960,16 @@ class Entreprise extends Scores_Ws_Server //Si la donnée existe déjà et que la source=score alors il faut mettre à jour l'encours client if ($source == 'score' && $detect[0]['dateSuppr']=='0000-00-00 00:00:00') { - $data = array ( - 'encoursClient' => $encoursClient, + $data = array ( + 'encoursClient' => $encoursClient, ); $result = $iDb->update('jo.surveillances_site', $data, $where, false, 0, true); } elseif ( $detect[0]['dateSuppr']!='0000-00-00 00:00:00') { $data = array ( - 'dateAjout' => date('Y-m-d'), - 'dateSuppr' => '0000-00-00 00:00:00', + 'dateAjout' => date('Y-m-d'), + 'dateSuppr' => '0000-00-00 00:00:00', ); $result = $iDb->update('jo.surveillances_site', $data, $where, false, 0, true); @@ -4339,7 +4339,7 @@ class Entreprise extends Scores_Ws_Server 'devise', 'ID_BILAN_SD', 'DATE_BILAN_SD', - 'TOP_CONFIDENTIEL', + 'TOP_CONFIDENTIEL', ); $resultBilan = new Bilan(); @@ -4384,7 +4384,7 @@ class Entreprise extends Scores_Ws_Server $mBil = new Metier_Partenaires_MBilans(); $mBil->setSiren($siren); - $tabBilans = $mBil->listeBilans(true); + $tabBilans = $mBil->listeBilans(true, 0, $this->User->idClient); foreach($tabBilans as $bilan) { $element = new ListeBilans(); $element->dateProvPartenaire = $bilan['dateProvPartenaire']; //@todo : date @@ -4397,6 +4397,8 @@ class Entreprise extends Scores_Ws_Server $element->dureeExercicePre = $bilan['dureeExercicePre']; $element->monnaie = $bilan['monnaie']; $element->source = $bilan['source']; + $element->confidentiel = $bilan['confidentiel']; + $element->confidentielClient = $bilan['confidentielClient']; $tabRet[] = $element; } @@ -4675,10 +4677,10 @@ class Entreprise extends Scores_Ws_Server $accesPartenaire = false; } - $tabRatiosInfos = $tabRatiosSecteurs = $tabBilansR = array(); - $tabRatios = $tabRatiosEvol = array(); + $tabRatiosInfos = $tabRatiosSecteurs = $tabBilansR = array(); + $tabRatios = $tabRatiosEvol = array(); $tabRet = array(); - + /** * Tableau d'infos sur les formules */ @@ -4703,7 +4705,7 @@ class Entreprise extends Scores_Ws_Server // Ratios $mBil = new Metier_Partenaires_MBilans(); $mBil->setSiren($siren); - $tabBilans = $mBil->listeBilans($accesPartenaire, 5); + $tabBilans = $mBil->listeBilans($accesPartenaire, 5, $this->User->idClient); $nbBilans = count($tabBilans); $tabBilan = $tabBil = array(); if ($nbBilans > 0) { diff --git a/library/WsScore/Entreprise/v0.8/Types.php b/library/WsScore/Entreprise/v0.8/Types.php index 2a5df9db..c394e2a5 100644 --- a/library/WsScore/Entreprise/v0.8/Types.php +++ b/library/WsScore/Entreprise/v0.8/Types.php @@ -269,10 +269,10 @@ class Identite */ public $NbEtab; - /** - * Numéro isin - * @var string - */ + /** + * Numéro isin + * @var string + */ public $Isin; /** @@ -2366,6 +2366,11 @@ class ListeBilans * @var int */ public $source; + + /** Confidentialité du bilan (1 si confidentiel, 0 sinon) + * @var int + */ + public $confidentiel; } class SetSurveillanceReturn @@ -2550,6 +2555,11 @@ class Bilan */ public $SOURCE; + /** Bilan confidentiel ou non + * @var string + */ + public $TOP_CONFIDENTIEL; + /** Tableau de postes du bilan dans le formalisme associé au Type de bilan * @var BilanPoste[] */ diff --git a/library/WsScore/Saisie/v0.2/Service.php b/library/WsScore/Saisie/v0.2/Service.php index 03b1c3ad..8d28c456 100644 --- a/library/WsScore/Saisie/v0.2/Service.php +++ b/library/WsScore/Saisie/v0.2/Service.php @@ -73,16 +73,16 @@ class Saisie extends Scores_Ws_Server $tabScores = $tabInfos['score']; //Valider le code Isin - if (strlen(trim($tabIdentite['isin']))) { - $iBourse = new Metier_Partenaires_MBourse(); - if (!$iBourse->isIsin($tabIdentite['isin'])) { - $error->errnum = 1; + if (strlen(trim($tabIdentite['isin']))) { + $iBourse = new Metier_Partenaires_MBourse(); + if (!$iBourse->isIsin($tabIdentite['isin'])) { + $error->errnum = 1; $error->errmsg = 'Code Isin incorrect.'; $output = new SetInfosEntrepReturn(); $output->error = $error; $output->result = $result; - return $output; - } + return $output; + } } // Mise à jour de l'identité @@ -1257,21 +1257,21 @@ class Saisie extends Scores_Ws_Server break; } - $iInsee = new Metier_Insee_MInsee(); + $iInsee = new Metier_Insee_MInsee(); $entrep = $iInsee->getIdentiteLight($siren, $nic); if ( empty($entrep['id']) || intval($entrep['id'])==0 ) { $this->sendError('1020'); } - $data = array( - 'siren' => $siren, - 'nic' => $nic, - 'dateProvPartenaire'=> date('Y').date('m').date('d'), - 'typeTel' => $type, - 'infoTel' => $info, - 'telephone' => $value, - 'actif' => 1, - 'partenaire' => 175, + $data = array( + 'siren' => $siren, + 'nic' => $nic, + 'dateProvPartenaire'=> date('Y').date('m').date('d'), + 'typeTel' => $type, + 'infoTel' => $info, + 'telephone' => $value, + 'actif' => 1, + 'partenaire' => 175, ); if ( $id === null ) { @@ -1393,9 +1393,9 @@ class Saisie extends Scores_Ws_Server { $this->authenticate(); - // --- Control input value - if ( strlen($siren)!=9 ) { - $this->sendError('1010'); + // --- Control input value + if ( strlen($siren)!=9 ) { + $this->sendError('1010'); } $tabPostes = array(); @@ -1407,8 +1407,8 @@ class Saisie extends Scores_Ws_Server if (!preg_match('/[0-9]{8}/', $data->dateCloture)) { throw new SoapFault('MSG', "Erreur Date de cloture"); } - if ($data->dateCloturePre != 'AAAAMMJJ' && !preg_match('/[0-9]{8}/', $data->dateCloturePre)) { - throw new SoapFault('MSG', "Erreur Date de cloture précédente"); + if ($data->dateCloturePre != 'AAAAMMJJ' && !preg_match('/[0-9]{8}/', $data->dateCloturePre)) { + throw new SoapFault('MSG', "Erreur Date de cloture précédente"); } if ($data->dateCloturePre == 'AAAAMMJJ') { $data->dateCloturePre = 0; @@ -1450,21 +1450,21 @@ class Saisie extends Scores_Ws_Server } // --- Insertion dans la bdd else { - + try { $bilansM = new Application_Model_JoBilans(); $sql = $bilansM->select() ->where('siren=?', $siren) ->where('dateExercice=?', $cloture) - ->where('typeBilan=?', $type); + ->where('typeBilan=?', $type); $row = $bilansM->fetchRow($sql); - } catch (Zend_Db_Exception $e) { - if ($this->User->idClient!=1) { - throw new SoapFault('ERR', "Application error"); - } else { - throw new SoapFault('ERR', $e->getMessage()); - } + } catch (Zend_Db_Exception $e) { + if ($this->User->idClient!=1) { + throw new SoapFault('ERR', "Application error"); + } else { + throw new SoapFault('ERR', $e->getMessage()); + } } $postesDiff = array(); @@ -1485,7 +1485,7 @@ class Saisie extends Scores_Ws_Server 'unite' => $data->unite, 'postes' => $data->postes, 'partenaire' => 1, - 'confidentiel' => 0, + 'confidentiel' => 0, 'dateInsert' => date('YmdHis'), ); @@ -1532,7 +1532,7 @@ class Saisie extends Scores_Ws_Server 'unite' => $data->unite, 'postes' => $data->postes, 'partenaire' => 1, - 'confidentiel' => 0, + 'confidentiel' => 0, 'dateInsert' => date('YmdHis'), ); @@ -1555,7 +1555,7 @@ class Saisie extends Scores_Ws_Server // --- Save user $userM = new Application_Model_JoBilansUser(); - try { + try { $userM->insert(array( 'idUtilisateur' => $this->User->id, 'login' => $this->User->login, @@ -1564,13 +1564,13 @@ class Saisie extends Scores_Ws_Server 'typeBilan' => $data->typeBilan, 'dateAction' => date('YmdHis'), 'postesDiff' => implode(';', $postesDiff), - )); - } catch (Zend_Db_Exception $e) { - if ($this->User->idClient!=1) { - throw new SoapFault('ERR', "Application error"); - } else { - throw new SoapFault('ERR', $e->getMessage()); - } + )); + } catch (Zend_Db_Exception $e) { + if ($this->User->idClient!=1) { + throw new SoapFault('ERR', "Application error"); + } else { + throw new SoapFault('ERR', $e->getMessage()); + } } return $id; @@ -1749,8 +1749,8 @@ class Saisie extends Scores_Ws_Server if (strlen(trim($dataRef['isin']))) { $iBourse = new Metier_Partenaires_MBourse(); - if (!$iBourse->isIsin($dataRef['isin'])) { - throw new SoapFault('ERR', 'Code Isin incorrect.'); + if (!$iBourse->isIsin($dataRef['isin'])) { + throw new SoapFault('ERR', 'Code Isin incorrect.'); } } @@ -2345,20 +2345,20 @@ class Saisie extends Scores_Ws_Server } if ($result) return true; } - //Move active participations if TUP and Fusion selected - elseif ($action=='tupfusion') - { - try { - $result = $lienM->update(array('idAct'=>$id, 'idUpdate'=>$this->User->id), - "idAct=$idLien AND actif=1 AND dateSuppr='0000-00-00 00:00:00'"); - } catch (Zend_Db_Exception $e) { - if ($this->User->idClient==1) { - throw new SoapFault('ERR', $e->getMessage()); - } else { - throw new SoapFault('ERR', "Application error"); - } - } - if ($result) return true; + //Move active participations if TUP and Fusion selected + elseif ($action=='tupfusion') + { + try { + $result = $lienM->update(array('idAct'=>$id, 'idUpdate'=>$this->User->id), + "idAct=$idLien AND actif=1 AND dateSuppr='0000-00-00 00:00:00'"); + } catch (Zend_Db_Exception $e) { + if ($this->User->idClient==1) { + throw new SoapFault('ERR', $e->getMessage()); + } else { + throw new SoapFault('ERR', "Application error"); + } + } + if ($result) return true; } return false; @@ -2593,7 +2593,7 @@ class Saisie extends Scores_Ws_Server } return $result; - case 'edit': + case 'edit': $tabRet['idUpdate'] = $userId; try { $result = $dirOp->update($tabRet, $where);