webservice/library/WsScore/WsInterne.php

389 lines
10 KiB
PHP
Raw Normal View History

2010-10-18 13:51:58 +00:00
<?php
2010-10-20 13:32:33 +00:00
require_once realpath(dirname(__FILE__)).'/Types/InterneTypes.php';
2010-10-18 13:51:58 +00:00
class WsInterne
{
2010-10-25 07:33:43 +00:00
protected $dbConfig;
function __construct()
{
$dbConfig = new Zend_Config_Ini(APPLICATION_PATH .
'/configs/databases.ini', APPLICATION_ENV);
$this->dbConfig = $dbConfig->db;
}
2010-10-18 13:51:58 +00:00
/**
* Enregistrement des informations saisie manuellement
* @param string $siret
* @param int $idEntreprise
* @param array $tabInfos
*/
public function setInfosEntrep( $siret, $idEntreprise, $tabInfos )
{
}
2010-10-20 13:32:33 +00:00
/**
* Commande de bilan
* @param InfoCommandeBilan $infoCommande
* @param InfoDemandeur $infoDemandeur
* @return SetCommandeReturnType
*/
public function setCommandeBilan( $infoCommande, $infoDemandeur )
{
}
2010-10-25 07:33:43 +00:00
/**
* Renvoi des informations sur une commande de bilan
* @param string $reference
* @return CommandeReturnType
*/
public function getCommandeBilan( $reference )
{
}
2010-10-20 13:32:33 +00:00
/**
* Commande d'acte
* @param InfoCommandeActe $infoCommande
* @param InfoDemandeur $infoDemandeur
* @return SetCommandeReturnType
*/
public function setCommandeActe( $infoCommande, $infoDemandeur )
{
}
2010-10-25 07:33:43 +00:00
/**
* Renvoi des informations sur une commande d'acte
* @param string $reference
* @return CommandeReturnType
*/
public function getCommandeActe( $reference ){}
2010-10-20 13:32:33 +00:00
/**
* Commande de kbis
* @param InfoCommandeKbis $infoCommande
* @param InfoDemandeur $infoDemandeur
* @return SetCommandeReturnType
*/
2010-10-25 07:33:43 +00:00
public function setCommandeKbis( $infoCommande, $infoDemandeur ){}
2010-10-20 13:32:33 +00:00
2010-10-25 07:33:43 +00:00
/**
* Renvoi des informations sur une commande de Kbis
* @param string $reference
* @return CommandeReturnType
*/
public function getCommandeKbis( $reference ){}
2010-10-20 13:32:33 +00:00
/**
* Commande de statut association
2010-10-25 07:33:43 +00:00
* @param InfoCommandeAsso $infoCommande
2010-10-20 13:32:33 +00:00
* @param InfoDemandeur $infoDemandeur
* @return SetCommandeReturnType
*/
2010-10-25 07:33:43 +00:00
public function setCommandeAsso( $infoCommande, $infoDemandeur ){}
2010-10-20 13:32:33 +00:00
/**
2010-10-25 07:33:43 +00:00
* Renvoi des informations sur une commande association
2010-10-20 13:32:33 +00:00
* @param string $reference
* @return CommandeReturnType
*/
2010-10-25 07:33:43 +00:00
public function getCommandeAsso( $reference ){}
2010-10-20 13:32:33 +00:00
/**
2010-10-25 07:33:43 +00:00
* Commande de privilèges et nantissements par email
* @param InfoCommandePieces $infoCommande
* @param InfoDemandeur $infoDemandeur
2010-10-20 13:32:33 +00:00
* @return CommandeReturnType
*/
2010-10-25 07:33:43 +00:00
public function setCommandePieces( $infoCommande, $infoDemandeur )
{
$error = new ErrorType();
$ref = new RefCommande();
if (!empty($infoCommande->siren))
{
$login = $_SERVER['PHP_AUTH_USER'];
//Vérification SIREN
//Vérification email - Si infoDemandeur->email vide alors on prend user_email
// Insertion des données commande
$dataCommandes = array(
'user_login' => $login,
'user_email' => '',
'type' => 'pieces',
'statut' => 0,
'demandeurReference' => $infoDemandeur->reference,
'demandeurEmail' => $infoDemandeur->email,
'demandeurTel' => $infoDemandeur->tel,
'demandeurNom' => $infoDemandeur->nom,
'demandeurService' => $infoDemandeur->service,
'demandeurSociete' => $infoDemandeur->societe,
'demandeurAdresse' => $infoDemandeur->adresse,
'demandeurCp' => $infoDemandeur->cp,
'demandeurVille' => $infoDemandeur->ville,
2010-10-26 15:42:18 +00:00
'infoCommande' => serialize($infoCommande)
2010-10-25 07:33:43 +00:00
);
try {
2010-10-26 15:42:18 +00:00
$db = Zend_Db::factory($this->dbConfig->Commandes);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
$commande = new Application_Model_Commandes();
$commandes_id = $commande->insert($dataCommandes);
2010-10-25 07:33:43 +00:00
} catch (Zend_Exception $e) {
Zend_Registry::get('WsLogger')->err("setCommandePieces - ".$e->getMessage());
}
2010-10-26 15:42:18 +00:00
if ($commandes_id)
2010-10-25 07:33:43 +00:00
{
//Enregistrement des détails de commande
$dataCommandesPieces = array(
2010-10-26 15:42:18 +00:00
'commande_id' => $commandes_id,
2010-10-25 07:33:43 +00:00
'siren' => $infoCommande->siren,
'raisonSociale' => '',
2010-10-26 15:42:18 +00:00
'fichier' => '',
2010-10-25 07:33:43 +00:00
);
try {
2010-10-26 15:42:18 +00:00
$commandePieces = new Application_Model_CommandesPieces();
$commandePieces->insert($dataCommandesPieces);
} catch (Zend_Exception $e) {
Zend_Registry::get('WsLogger')->err("setCommandePieces - ".$e->getMessage());
}
try {
$row = $commande->find($commandes_id);
$data = $row->current();
$ref->reference = $data->id;
$ref->dateCommande = $data->date_added;
$ref->dateMaj = $data->date_updated;
$ref->dateReception = $data->date_closed;
2010-10-25 07:33:43 +00:00
} catch (Zend_Exception $e) {
Zend_Registry::get('WsLogger')->err("setCommandePieces - ".$e->getMessage());
2010-10-26 15:42:18 +00:00
$error->errnum = 0;
$error->errmsg = "Commande Introuvable";
2010-10-25 07:33:43 +00:00
}
}
else
{
$error->errnum = 0;
$error->errmsg = "Erreur enregistrement commande";
}
}
else
{
$error->errnum = 0;
$error->errmsg = 'Erreur SIREN invalide';
}
$output = new CommandeReturnType();
$output->error = $error;
$output->ref = $ref;
return $output;
}
2010-10-20 13:32:33 +00:00
/**
2010-10-25 07:33:43 +00:00
* Renvoi des informations sur une commande pièces
2010-10-20 13:32:33 +00:00
* @param string $reference
* @return CommandeReturnType
*/
2010-10-25 07:33:43 +00:00
public function getCommandePieces( $reference ){}
2010-10-20 13:32:33 +00:00
/**
2010-10-25 07:33:43 +00:00
* Obtenir la liste des commandes passées
* @param ListeCommandeFiltre $filtre
* @param int $position
* @param int $nbRep
2010-10-26 15:42:18 +00:00
* @return ListeCommandeReturnType
2010-10-20 13:32:33 +00:00
*/
2010-10-26 15:42:18 +00:00
public function getListeCommande( $filtre, $position = 0, $nbRep = 20 )
{
$output = new ListeCommandeReturnType();
$error = new ErrorType();
$result = new ListeCommande();
$where = null;
$order = 'date_added DESC';
try {
$db = Zend_Db::factory($this->dbConfig->Commandes);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
$commandes = new Application_Model_Commandes();
if (!empty($filtre->type))
{
switch($filtre->type)
{
case 'pieces':
$where = $commandes->select()->where('type = ?', 'pieces');
break;
}
}
$rows = $commandes->fetchAll($where, $order, $nbRep, $position);
}
catch (Zend_Db_Adapter_Exception $e)
{
Zend_Registry::get('WsLogger')->err("getListeStatut - ".$e->getMessage());
}
$liste = array();
if (count($rows)>0)
{
foreach ($rows as $r) {
$selectEven = $commandes->select()->order('date_added DESC')->limit(1);
$evens = $r->findDependentRowset('CommandesEven', null, $selectEven);
$data = $evens->toArray();
$info = '';
if (count($data)>0){
$info = $data[0]['commentaire'];
}
$fichier = '';
if (in_array($r['type'], array('pieces'))){
//@todo gérer la présence d'un fichier
}
$ref = new RefCommande();
$ref->reference = strtoupper($r['type']).'-'.$r['id'];
$ref->dateCommande = $r['date_added'];
$ref->dateMaj = $r['date_updated'];
$ref->dateReception = $r['date_closed'];
$ref->info = $info;
$ref->fichier = $fichier;
$ref->login = $r['user_login'];
$demandeur = new InfoDemandeur();
$demandeur->reference = $r['demandeurReference'];
$demandeur->email = $r['demandeurEmail'];
$demandeur->nom = $r['demandeurNom'];
$demandeur->tel = $r['demandeurTel'];
$demandeur->service = $r['demandeurService'];
$demandeur->societe = $r['demandeurSociete'];
$demandeur->adresse = $r['demandeurAdresse'];
$demandeur->cp = $r['demandeurCp'];
$demandeur->ville = $r['demandeurVille'];
$ref->demandeur = $demandeur;
$liste[] = $ref;
}
}
$result->nbCommandes = count($rows);
$result->commandes = $liste;
$output->error = $error;
$output->result = $result;
return $output;
}
2010-10-20 13:32:33 +00:00
/**
* Liste des bilans
* @param string $siren
* @param string $waldec
* @param int $idEntreprise
* @return ListeBilan
*/
2010-10-25 07:33:43 +00:00
public function getListeBilan( $siren, $waldec = null, $idEntreprise = null ){}
2010-10-20 13:32:33 +00:00
/**
* Liste des actes
* @param string $siren
* @return ListeActe
*/
2010-10-25 07:33:43 +00:00
public function getListeActe( $siren ){}
/**
* Retourne la liste des statuts de commande
* @param string $type
* @return Statut[]
*/
public function getListeStatut( $type )
{
Zend_Registry::get('WsLogger')->info("getListeStatut - ".$type);
try {
$db = Zend_Db::factory($this->dbConfig->Commandes);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
2010-10-26 15:42:18 +00:00
$dbStatut = new Application_Model_CommandesStatut();
2010-10-25 07:33:43 +00:00
$result = $dbStatut->fetchAll(array("commande_type = '$type'"));
}
catch (Zend_Db_Adapter_Exception $e)
{
Zend_Registry::get('WsLogger')->err("getListeStatut - ".$e->getMessage());
}
$listeStatut = array();
if (count($result)>0)
{
foreach($result as $r)
{
$statut = new Statut();
$statut->code = $r['code'];
$statut->lib = $r['libelle'];
$listeStatut[] = $statut;
}
}
return $listeStatut;
}
/**
2010-10-26 15:42:18 +00:00
* Spécifier un état défini pour une commande (avec déclenchement d'une action)
* @param string $reference
* @param int $statutCode
* @return bool
*/
public function setCommandeStatut( $reference, $statutCode)
{
$db = Zend_Db::factory($this->dbConfig->Commandes);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
$dbStatut = new Application_Model_CommandesStatut();
$result = $dbStatut->fetchRow(array("code = '$statutCode'"));
if ( count($result)>0 && $this->setCommandeEven($reference, $statut->lib) )
{
if (!empty($result->action)){
switch($result->action){
case 'CLOSE':
//date_closed
break;
}
}
return true;
} else {
return false;
}
}
/**
* Spécifier un état pour une commande
2010-10-25 07:33:43 +00:00
* @param string $reference
* @param string $comment
* @return bool
*/
public function setCommandeEven ( $reference, $comment )
{
$login = $_SERVER['PHP_AUTH_USER'];
2010-10-26 15:42:18 +00:00
//Vérifier que la commande existe avec la référence fournie
2010-10-25 07:33:43 +00:00
//Enregistrer l'information
try {
$db = Zend_Db::factory($this->dbConfig->Commandes);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
2010-10-26 15:42:18 +00:00
$commandeEven = new Application_Model_CommandesEven();
2010-10-25 07:33:43 +00:00
$insert = $commandeEven->createRow();
2010-10-26 15:42:18 +00:00
$insert->commande_id = (int)$reference;
2010-10-25 07:33:43 +00:00
$insert->commentaire = $comment;
$insert->user_login = $login;
$insert->save();
return true;
}
catch (Zend_Db_Adapter_Exception $e)
{
Zend_Registry::get('WsLogger')->err("getListeStatut - ".$e->getMessage());
return false;
}
}
/**
* Ajout du nom de fichier liée à la commande
* @param string $reference
* @param string $filename
*/
public function setCommandeDocument( $reference, $filename )
2010-10-20 13:32:33 +00:00
{
2010-10-25 07:33:43 +00:00
//Suivant la référence,
//On détermine le type
2010-10-20 13:32:33 +00:00
}
2010-10-25 07:33:43 +00:00
2010-10-18 13:51:58 +00:00
}