351 lines
9.3 KiB
PHP
351 lines
9.3 KiB
PHP
<?php
|
|
|
|
function assocSourceDroit(){
|
|
return array(
|
|
'annonces' => 'survannonce',
|
|
'insee' => 'survinsee',
|
|
'bilans' => 'survbilan',
|
|
'score' => 'survscore',
|
|
'actes' => 'survactes',
|
|
'dirigeants' => 'survdirigeants',
|
|
'privileges' => 'survpriv',
|
|
);
|
|
}
|
|
|
|
function assocSourceTxt(){
|
|
return array(
|
|
'annonces' => 'annonces',
|
|
'insee' => 'Insee',
|
|
'bilans' => 'bilans',
|
|
'score' => 'IndiScore',
|
|
'actes' => 'actes',
|
|
'dirigeants' => 'dirigeants',
|
|
'privileges' => 'privilèges',
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Affiche le formulaire surveillance.
|
|
*
|
|
* @param string $page
|
|
* La page ou l'on affiche le formulaire, détermine le type de surveillance.
|
|
* @param string $siret
|
|
* L'établissement à surveiller.
|
|
* @param array $notEmail
|
|
* Un tableau de login pour exclure l'affichage de l'adresse email
|
|
* @param boolean $inDialog
|
|
*
|
|
* @return string
|
|
* Retourne sous forme de chaine de caractère le fomulaire en HTML
|
|
*/
|
|
function formSurveillance($source, $siret, $notEmail, $inDialog = false)
|
|
{
|
|
$assocSourceTxt = assocSourceTxt();
|
|
$assocSourceDroit = assocSourceDroit();
|
|
|
|
$style = file_get_contents(realpath(dirname(__FILE__)).'/style.css');
|
|
|
|
$output = '';
|
|
|
|
if($inDialog){
|
|
$output.= '<style type="text/css">'.$style.'</style>'."\n";
|
|
$output.= '<form id="frmSurv" name="frmSurv" '.
|
|
'action="./pages/ajax_surveillance.php" method="post">'."\n";
|
|
$output.= '<input name="q" type="hidden" value="setsurv"/>';
|
|
$output.= '<input name="formSurv[siret]" type="hidden" value="'.
|
|
$siret.'"/>'."\n";
|
|
|
|
if( empty($source) ){
|
|
$output.= '<div class="fieldgrp">'."\n";
|
|
$output.= '<label>Types</label>'."\n";
|
|
$output.= '<div class="field">'."\n";
|
|
foreach($assocSourceTxt as $Source => $Txt)
|
|
{
|
|
if(hasPerm($assocSourceDroit[$Source]))
|
|
{
|
|
$checked = 'checked';
|
|
if ($Source=='privileges'){
|
|
$checked = '';
|
|
}
|
|
$output.='<input type="checkbox" '.
|
|
'name="formSurv[source][]" value="'.
|
|
$Source.'" '.$checked.'/> '.$Txt."<br/>\n";
|
|
}
|
|
}
|
|
$output.= '</div>'."\n";
|
|
$output.= '</div>'."\n";
|
|
}else{
|
|
$output.= '<input name="formSurv[source]" '.
|
|
'type="hidden" value="'.$source.'"/>'."\n";
|
|
}
|
|
//Champ référence
|
|
$ref = '';
|
|
if(isset($_REQUEST['ref'])){
|
|
$ref = $_REQUEST['ref'];
|
|
}
|
|
$output.= '<div id="survForm">'."\n";
|
|
$output.= '<div class="fieldgrp">'."\n";
|
|
$output.= '<label class="StyleInfoLib">Votre référence</label>';
|
|
$output.= '<div class="field">';
|
|
$output.= '<input class="longfield" name="formSurv[ref]" type="text" '.
|
|
'value="'.$ref.'" size="10"/></div>'."\n";
|
|
$output.= '</div>'."\n";
|
|
|
|
//Champ spécial suivant source
|
|
$encours = '';
|
|
if(isset($_REQUEST['encours'])){
|
|
$encours = $_REQUEST['encours'];
|
|
}
|
|
if ($source=='score'){
|
|
$output.= '<div id="survForm">'."\n";
|
|
$output.= '<div class="fieldgrp">'."\n";
|
|
$output.= '<label class="StyleInfoLib">Votre encours (€)</label>';
|
|
$output.= '<div class="field">';
|
|
$output.= '<input class="longfield" name="formSurv[encours]" '.
|
|
'type="text" value="'.$encours.'" size="10"/></div>'."\n";
|
|
$output.= '</div>'."\n";
|
|
}
|
|
|
|
//Champ email
|
|
$email = '';
|
|
if( !in_array($_SESSION['tabInfo']['login'],$notEmail) &&
|
|
!isset($_REQUEST['email'])){
|
|
$email = $_SESSION['tabInfo']['email'];
|
|
}elseif(isset($_REQUEST['email'])){
|
|
$email = $_REQUEST['email'];
|
|
}
|
|
$output.= '<div class="fieldgrp">'."\n";
|
|
$output.= '<label class="StyleInfoLib">'.
|
|
'Adresse email du destinataire</label>';
|
|
$output.= '<div class="field">'.
|
|
'<input class="longfield" name="formSurv[email]" '.
|
|
'type="text" value="'.$email.'" size="20"/></div>'."\n";
|
|
$output.= '</div>'."\n";;
|
|
$output.= '</div>'."\n";
|
|
$output.= '</form>'."\n";
|
|
|
|
}else{
|
|
$texte = 'Mettre sous surveillance ';
|
|
if( !empty($source) ) {
|
|
$texte.= $assocSourceTxt[$source];
|
|
}
|
|
$output.= '<br/>';
|
|
$output.= lienSousSurveillance($texte,
|
|
'Ajouter la surveillance', $source, $siret);
|
|
$output.= '<br/>'."\n";
|
|
}
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Gère la détection des droits et des préférences pour l'affichage
|
|
* de la surveillance.
|
|
* @param string $page
|
|
* La page ou l'on affiche le formulaire, détermine le type
|
|
* de surveillance.
|
|
* @param string $siret
|
|
* L'établissement à surveiller.
|
|
* @return void
|
|
*/
|
|
function getSurveillance($source, $siret){
|
|
$assocSourceDroit = assocSourceDroit();
|
|
$return = '';
|
|
$notEmail = array('testreunica', 'reunicacsf');
|
|
|
|
if (!empty($source) &&
|
|
array_key_exists($source, $assocSourceDroit) &&
|
|
hasPerm($assocSourceDroit[$source]) ){
|
|
$listSurv = inSurveillance($source, $siret);
|
|
if (hasPref('voirsurv') && $listSurv!==FALSE){
|
|
$return = dInfoSurveillance($listSurv, $source, $siret);
|
|
}else{
|
|
$return = formSurveillance($source, $siret, $notEmail);
|
|
}
|
|
}else{
|
|
|
|
$listSurv = inSurveillance('', $siret);
|
|
if (hasPref('voirsurv') && $listSurv!==FALSE){
|
|
$return = dInfoSurveillance($listSurv, '', $siret);
|
|
} else {
|
|
$return = formSurveillance('', $siret, $notEmail);
|
|
}
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* Renvoie le code HTML pour le lien de surveillance
|
|
* @param string $texte
|
|
* @param string $titre
|
|
* @param string $source
|
|
* @param string $siret
|
|
*/
|
|
function lienSousSurveillance($texte, $titre, $source, $siret){
|
|
return '<a class="dialogsurv" '.
|
|
'href="./pages/ajax_surveillance.php?q=ajouter&siret='.
|
|
$siret.'&source='.$source.'" '.
|
|
'title="'.$titre.' '.$source.'">'. $texte . '</a>';
|
|
}
|
|
|
|
/**
|
|
* Affiche les informations de surveillance
|
|
* @param array | boolean $listSurv
|
|
* @param string $source
|
|
* @param string $siret
|
|
*/
|
|
function dInfoSurveillance($listSurv, $source, $siret){
|
|
$output = '';
|
|
if (is_array($listSurv) && count($listSurv)>0){
|
|
$output.= '<br/>L\'entité est ' .
|
|
lienSousSurveillance('sous surveillance',
|
|
'Ajouter la surveillance', $source, $siret);
|
|
$sourceTxt = assocSourceTxt();
|
|
$cSource = 0;
|
|
foreach ($listSurv as $source => $info){
|
|
$cSource++;
|
|
$ref = $info['ref'];
|
|
$output.= ' <u tooltip="';
|
|
$output.= 'Ref : '.$ref;
|
|
$date = WDate::dateT('Y-m-d', 'd/m/Y', $info['dateAjout']);
|
|
$output.= '<br/>Date d\'ajout : '.$date;
|
|
if ($info['dateDerEnvoi']!='0000-00-00 00:00:00'){
|
|
$date = WDate::dateT('Y-m-d', 'd/m/Y',
|
|
substr($info['dateDerEnvoi'],0,10));
|
|
$output.= '<br/>Date de dernier envoi : '.$date;
|
|
}
|
|
$output.= '">'.$sourceTxt[$source].'</u>';
|
|
if ($cSource<count($listSurv)) $output.= ',';
|
|
}
|
|
if (!empty($ref)) $output.= ' ('.$ref.')';
|
|
$output.= ".\n";
|
|
}
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Vérifie si l'établissement est en surveillance
|
|
*
|
|
* @param string $source
|
|
* Le type de surveillance.
|
|
* @param string $siret
|
|
* L'établissement surveillé.
|
|
* @return boolean
|
|
* true or false
|
|
*/
|
|
function inSurveillance($source, $siret){
|
|
global $client;
|
|
try {
|
|
$result = $client->getSurveillances($siret,$source);
|
|
$survSource = $result['results']['reponses'];
|
|
if (count($survSource)>0 ){
|
|
$find = FALSE;
|
|
if(strlen($siret)>9) $siret = substr($siret, 0, 9);
|
|
if (!empty($source)){
|
|
foreach($survSource as $item){
|
|
if ($item['siren'] == $siret &&
|
|
$item['source'] == $source)
|
|
{
|
|
$find[$item['source']] = array(
|
|
'email' => $item['email'],
|
|
'ref' => $item['ref'],
|
|
'dateAjout' => $item['dateAjout'],
|
|
'dateDerEnvoi' => $item['dateDerEnvoi'],
|
|
);
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
$find = array();
|
|
FB::log($survSource, 'SURV');
|
|
foreach($survSource as $item){
|
|
if ($item['siren'] == $siret){
|
|
$find[$item['source']] = array(
|
|
'email' => $item['email'],
|
|
'ref' => $item['ref'],
|
|
'dateAjout' => $item['dateAjout'],
|
|
'dateDerEnvoi' => $item['dateDerEnvoi'],
|
|
);
|
|
}
|
|
}
|
|
}
|
|
return $find;
|
|
}else{ return false; }
|
|
}catch(SoapFault $fault){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Envoi la surveillance au webservice
|
|
*
|
|
* @param array $tabForm
|
|
* Le type de surveillance.
|
|
* @return mixed
|
|
* Retourne la réponse du webservice ou false
|
|
*/
|
|
function setSurveillance($tabForm)
|
|
{
|
|
global $client;
|
|
$siret = $tabForm['siret'];
|
|
$email = $tabForm['email'];
|
|
$ref = $tabForm['ref'];
|
|
$source = $tabForm['source'];
|
|
isset($tabForm['encours']) && !empty($tabForm['encours']) ?
|
|
$encours = $tabForm['encours'] : $encours = 0;
|
|
|
|
//Vérification de l'encours (chiffres)
|
|
if (!preg_match('/([0-9]+)/', $encours)){
|
|
return 'Encours incorrect';
|
|
exit;
|
|
}
|
|
|
|
//Mise en surveillance pour une liste de sources
|
|
if (is_array($source)){
|
|
foreach ($source as $s){
|
|
try{
|
|
$result = $client->setSurveillance($siret, $email, $ref, $s,
|
|
false, $encours);
|
|
$result = '';
|
|
}catch(SoapFault $fault){
|
|
$result = false;
|
|
}
|
|
}
|
|
|
|
//Mise en surveillance pour une source
|
|
} else {
|
|
try{
|
|
$result = $client->setSurveillance($siret, $email, $ref, $source,
|
|
false, $encours);
|
|
$result = '';
|
|
}catch (SoapFault $fault){
|
|
$result = false;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Supprime la surveillance
|
|
* @param string $siret
|
|
* L'établissement surveillé.
|
|
* @param $email
|
|
* L'email enregistré pour la surveillance
|
|
* @param $ref
|
|
* La référence ajouté pour cette surveillance
|
|
* @param $source
|
|
* La source pour cette surveillance
|
|
* @return mixed
|
|
* Retourne la réponse du webservice ou false
|
|
*/
|
|
function deleteSurveillance($siret, $email, $ref, $source){
|
|
global $client;
|
|
try{
|
|
$result = $client->setSurveillance($siret, $email, $ref, $source, TRUE);
|
|
return TRUE;
|
|
}catch(SoapFault $fault){
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
|
|
?>
|