issue #001391 : Ajout méthodes setLien, setLienRef et searchLienRef
This commit is contained in:
parent
48fb99de55
commit
3f585797cf
5
application/models/JoLiens.php
Normal file
5
application/models/JoLiens.php
Normal file
@ -0,0 +1,5 @@
|
||||
<?php
|
||||
class Application_Model_JoLiens extends Zend_Db_Table_Abstract
|
||||
{
|
||||
protected $_name = 'liens';
|
||||
}
|
15
application/models/JoLiensRef.php
Normal file
15
application/models/JoLiensRef.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
class Application_Model_JoLiensRef extends Zend_Db_Table_Abstract
|
||||
{
|
||||
protected $_name = 'liensRef';
|
||||
|
||||
public function insert(array $data)
|
||||
{
|
||||
// Ajout d'un timestamp
|
||||
if (empty($data['dateInsert'])) {
|
||||
$data['dateInsert'] = date('YmdHis');
|
||||
}
|
||||
return parent::insert($data);
|
||||
}
|
||||
|
||||
}
|
@ -18,3 +18,4 @@ Type[] = "JalCollecte"
|
||||
Type[] = "SupprAnnonceReturn"
|
||||
Type[] = "DupliqueAnnonceReturn"
|
||||
Type[] = "BilanInfos"
|
||||
Type[] = "SearchLienRef"
|
||||
|
@ -1583,19 +1583,211 @@ class Saisie extends WsScore
|
||||
return $id;
|
||||
}
|
||||
|
||||
protected function setLien($infos, $action)
|
||||
/**
|
||||
* Définition d'un lien
|
||||
* @param string $infos
|
||||
* @param string $id
|
||||
* @throws SoapFault
|
||||
* @return int
|
||||
*/
|
||||
public function setLien($infos, $id=null)
|
||||
{
|
||||
$this->authenticate();
|
||||
|
||||
$data = json_decode($infos, true);
|
||||
$dataLien = json_decode($infos, true);
|
||||
|
||||
|
||||
//Connect to the database
|
||||
try {
|
||||
$db = Zend_Db::factory($this->dbConfig->db->jo);
|
||||
$db->getConnection();
|
||||
} catch (Zend_Db_Adapter_Exception $e) {
|
||||
if ($this->tabInfoUser['idClient']!=1) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
} else {
|
||||
throw new SoapFault('ERR', $e->getMessage());
|
||||
}
|
||||
} catch (Zend_Exception $e) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
}
|
||||
|
||||
$lienM = new Application_Model_JoLiens($db);
|
||||
|
||||
//Enregistrer les infos
|
||||
if ($id===null) {
|
||||
|
||||
try {
|
||||
$id = $lienM->insert($dataLien);
|
||||
} catch (Zend_Db_Exception $e) {
|
||||
if ($this->tabInfoUser['idClient']!=1) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
} else {
|
||||
throw new SoapFault('ERR', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//Mise à jour des infos
|
||||
else {
|
||||
|
||||
try {
|
||||
$id = $lienM->update($dataLien, 'id = '.$id);
|
||||
} catch (Zend_Db_Exception $e) {
|
||||
if ($this->tabInfoUser['idClient']!=1) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
} else {
|
||||
throw new SoapFault('ERR', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
return $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Définition d'une fiche lien
|
||||
* @param string $infos
|
||||
* @param string $id
|
||||
* @throws SoapFault
|
||||
* @return int
|
||||
*/
|
||||
public function setLienRef($infos, $id=null)
|
||||
{
|
||||
$this->authenticate();
|
||||
|
||||
$dataRef = json_decode($infos, true);
|
||||
|
||||
//Connect to the database
|
||||
try {
|
||||
$db = Zend_Db::factory($this->dbConfig->db->jo);
|
||||
$db->getConnection();
|
||||
} catch (Zend_Db_Adapter_Exception $e) {
|
||||
if ($this->tabInfoUser['idClient']!=1) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
} else {
|
||||
throw new SoapFault('ERR', $e->getMessage());
|
||||
}
|
||||
} catch (Zend_Exception $e) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
}
|
||||
|
||||
$refM = new Application_Model_JoLiensRef($db);
|
||||
|
||||
//Check if exist
|
||||
if (intval($dataRef['siren'])!=0) {
|
||||
$sql = $refM->select()->from($refM, array('id'))->where('siren=?', $dataRef['siren']);
|
||||
$rowset = $refM->fetchRow($sql);
|
||||
if ( $rowset!==null ) {
|
||||
return $rowset->id;
|
||||
}
|
||||
}
|
||||
|
||||
//Insert
|
||||
if ($id===null) {
|
||||
|
||||
$dataRef = array_merge($dataRef, array('dateInsert'=>date('Ymd')));
|
||||
|
||||
try {
|
||||
$id = $refM->insert($dataRef);
|
||||
} catch (Zend_Db_Exception $e) {
|
||||
if ($this->tabInfoUser['idClient']!=1) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
} else {
|
||||
throw new SoapFault('ERR', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//Update
|
||||
else {
|
||||
|
||||
try {
|
||||
$id = $refM->update($dataRef, 'id = '.$id);
|
||||
} catch (Zend_Db_Exception $e) {
|
||||
if ($this->tabInfoUser['idClient']!=1) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
} else {
|
||||
throw new SoapFault('ERR', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recherche de fiche lien dans le référentiel
|
||||
* @param string $query
|
||||
* @throws SoapFault
|
||||
* @return SearchLienRef[]
|
||||
*/
|
||||
public function searchLienRef($query)
|
||||
{
|
||||
$this->authenticate();
|
||||
|
||||
//Connect to the database
|
||||
try {
|
||||
$db = Zend_Db::factory($this->dbConfig->db->jo);
|
||||
$db->getConnection();
|
||||
} catch (Zend_Db_Adapter_Exception $e) {
|
||||
if ($this->tabInfoUser['idClient']!=1) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
} else {
|
||||
throw new SoapFault('ERR', $e->getMessage());
|
||||
}
|
||||
} catch (Zend_Exception $e) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
}
|
||||
|
||||
$refM = new Application_Model_JoLiensRef($db);
|
||||
|
||||
$queries = explode(' ', $query);
|
||||
$sql = $refM->select()->from($refM,array('id','siren', 'RS', 'nom', 'idLoc1Num'));
|
||||
if (count($queries)>0) {
|
||||
$where = '';
|
||||
$i = 0;
|
||||
foreach ($queries as $item) {
|
||||
if (strlen($item)>2) {
|
||||
$where = 'LIKE "%'.strtolower($item).'%"';
|
||||
}
|
||||
$i++;
|
||||
if (count($queries) < $i){
|
||||
$where.= ' OR ';
|
||||
}
|
||||
}
|
||||
$sql->where("(siren ".$where.") OR (RS ".$where.") OR (nom ".$where.") OR (idLoc1Num ".$where.")");
|
||||
}
|
||||
|
||||
try {
|
||||
$result = $refM->fetchAll($sql, 20);
|
||||
} catch (Zend_Db_Exception $e) {
|
||||
if ($this->tabInfoUser['idClient']!=1) {
|
||||
throw new SoapFault('ERR', "Application error");
|
||||
} else {
|
||||
throw new SoapFault('ERR', $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
$output = array();
|
||||
if ($result->count()>0) {
|
||||
foreach($result as $item) {
|
||||
$tmp = new SearchLienRef();
|
||||
$tmp->id = $item->id;
|
||||
$itemsLib = array('siren', 'RS', 'nom', 'idLoc1Num');
|
||||
$lib = '';
|
||||
foreach($itemsLib as $value) {
|
||||
if (!empty($item->$value)) {
|
||||
$lib.= ' , '.$item->$value;
|
||||
}
|
||||
}
|
||||
$tmp->lib = $lib;
|
||||
$output[] = $tmp;
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
}
|
@ -302,3 +302,14 @@ class BilanInfos
|
||||
public $postes;
|
||||
}
|
||||
|
||||
class SearchLienRef
|
||||
{
|
||||
/** @var int */
|
||||
public $id;
|
||||
|
||||
/** @var string */
|
||||
public $lib;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user