extranet/application/controllers/MandataireController.php
Michael RICOIS e14f08dd47 setMandaire
2011-05-09 10:15:20 +00:00

235 lines
6.1 KiB
PHP

<?php
class MandataireController extends Zend_Controller_Action
{
public function init()
{
require_once 'Scores/WsScores.php';
}
/**
* Enregistrement d'un mandataire
*/
public function addAction()
{
$this->_helper->layout->disableLayout();
//Mode edition
if($idMandataire != ''){
$idMandataire = (int)substr($idMandataire,1);
try{
$O = $client->getMandataire($idMandataire);
$tabMandataires = $O['result'];
$firephp->log($tabMandataires,'Edition - tabMandataires');
}catch(SoapFault $fault){
$message = 'Une erreur est survenue durant la recherche de mandataire.';
}
//Mode ajout
}else{
$tabMandataires = $_REQUEST['tabMandataires'];
}
if($tribunal!=''){
//La cour d'appel suivant le tribunal sélectionné
$tmp = $client->getIdCoursAppel($tribunal);
$codeCourAppel = $tmp;
//Les cours d'appel
//require_once realpath(dirname(__FILE__).'/coursappel.php');
//Les tribunaux
$tmp = $client->getTribunaux(array('C','I','G')); //
$tribunaux = $tmp['result'];
}else{
$message = 'Pas de tribunal sélectionné.';
}
}
/**
* Edition d'un mandataire
*/
public function editAction()
{
$this->_forward('add');
}
/**
* Recherche d'un mandataire à partir d'une chaine de caractères
* "nom, departement"
*/
public function searchAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$request = $this->getRequest();
$search = $request->getParam('search', '');
if (empty($search)) { echo ''; }
else { $search = strtolower($search); }
list($searchStr, $filtre) = explode(',', $search);
$searchStr = trim($searchStr);
$filtre = str_replace(' ', '', $filtre);
if( strlen($filtre) != 5 && strlen($filtre) != 2 ){
$filtre = '';
}
$ws = new WsScores();
$reponse = $ws->searchMandataires($searchStr,
array('V', 'N', 'H', 'A', 'M'), //types de mandataires
$filtre);
if ($reponse == false){
echo 'Erreur durant la recherche';
exit;
}
$mandataires = $reponse->result->item;
$output = array();
$output[] = array(
'label' => "A l'adresse du bien vendu",
'id' => 'adresse'
);
/*
REGEX Code Postal : ^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$
(?<!/BP /i) Ne pas avoir la présence de BP devant les 5 chiffres
*/
//Recherche des codes postaux
if( count($mandataires)>0 ) {
$tableResults = array();
$i=0;
foreach ($mandataires as $mandataire) {
$tabResults[$i]['code'] = $mandataire->id;
$tabResults[$i]['lib'] = htmlspecialchars_decode(
html_entity_decode($mandataire->mand), ENT_QUOTES);
preg_match('/(?<!bp )((2[A|B])|[0-9]{2})[0-9]{3}( )/i', $mandataire->mand, $matches);
$tabResults[$i]['cp'] = $matches[0];
$i++;
}
foreach ($tabResults as $key => $row){
$code[$key] = $row['code'];
$lib[$key] = $row['lib'];
$cp[$key] = $row['cp'];
}
//Classement du tableau
array_multisort($cp, SORT_NUMERIC, $tabResults);
//Affichage des valeurs
foreach ($tabResults as $item){
$output[] = array(
'label' => $item['lib'],
'id' => $item['code']
);
}
}
echo json_encode($output);
}
public function getAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$request = $this->getRequest();
$siren = $request->getParam('siren', '');
$siren = trim($siren);
$siren = str_replace(' ','',$siren); //Remplacer les espaces
if ( $siren=='' || strlen($siren)!=14 ) {
$output = array(
'Siret' => 'Siret incorrect',
);
echo json_encode($output);
exit;
}
$tabEntrep = array();
$ws = new WsScores();
$tabEntrep = $ws->getIdentite($siren);
/**
* Utiliser la raison sociale la plus longue
* Nom, Nom2, NomLong
*/
if (!empty($tabEntrep->NomLong) &&
strlen($tabEntrep->NomLong)>strlen($tabEntrep->Nom)){
$tabEntrep->Nom = $tabEntrep->NomLong;
}
//Retourner le tableau sous forme json
$tabEntrepD = $this->htmlentitydecode_deep($tabEntrep);
echo json_encode($tabEntrepD);
}
public function saveAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$request = $this->getRequest();
$error = false;
$tabMandataires = array();
$tabMandataires = $_REQUEST['tabMandataires'];
//Vérification des données
$fields = array();
if($tabMandataires['sirenGrp']=='' && $tabMandataires['sirenMand']==''){
$fields[] ='Siret'; $error = true;
}
if($tabMandataires['sirenGrp'] == $tabMandataires['sirenMand']){
$fields[] ='Siret de la société civile identique au Siret du mandataire';
$error = true;
}
if( (strlen($tabMandataires['sirenGrp'])!=14 && empty($tabMandataires['sirenMand'])) ||
(empty($tabMandataires['sirenGrp']) && strlen($tabMandataires['sirenMand'])!=14) ){
$fields = 'Siret avec la bonne taille';
$error = true;
}
if($tabMandataires['Nom']=='' ){$fields[] ='Nom'; $error = true;}
if($tabMandataires['type']==''){$fields[] ='Type'; $error = true;}
if($tabMandataires['coursAppel']==''){$fields[] ='Cours d\'appel'; $error = true;}
if($tabMandataires['Statut']==''){$fields[] ='Statut'; $error = true;}
if($tabMandataires['adresse']==''){$fields[] ='Adresse'; $error = true;}
if($tabMandataires['cp']==''){$fields[] ='Code Postal'; $error = true;}
if($tabMandataires['ville']==''){$fields[] ='Ville'; $error = true;}
if($tabMandataires['tel']==''){$fields[] ='Téléphone'; $error = true;}
//Envoi de la requête au webservices
if ($error==true){
$message = '<font color="red">';
$message.= 'Veuillez remplir les champs suivants : ';
$message.= join(', ', $fields);
$message.= '</font>';
}else{
$message='';
$ws = new WsScores();
$reponse = $ws->setMandataire($tabMandataires);
if ($reponse===false || $reponse->result==false){
$message = 'Une erreur s\'est produite durant l\'enregistrement';
}
}
echo $message;
}
protected function htmlentitydecode_deep($value)
{
$value = is_array($value) ?
array_map(array('MandataireController' ,'htmlentitydecode_deep'), $value) :
html_entity_decode($value, ENT_QUOTES);
return $value;
}
}