dbConfig = $dbConfig->db; } /** * Enregistrement des informations saisie manuellement * @param string $siret * @param int $idEntreprise * @param array $tabInfos */ public function setInfosEntrep( $siret, $idEntreprise, $tabInfos ) { } /** * Commande de bilan * @param InfoCommandeBilan $infoCommande * @param InfoDemandeur $infoDemandeur * @return CmdBilanReturn */ public function setCmdBilan( InfoCommandeBilan $infoCommande, InfoDemandeur $infoDemandeur ) { } /** * Renvoi des informations sur une commande de bilan * @param string $reference * @return CmdBilanReturn */ public function getCmdBilan( $reference ) { } /** * Commande d'acte * @param InfoCommandeActe $infoCommande * @param InfoDemandeur $infoDemandeur * @return CmdActeReturn */ public function setCmdActe( $infoCommande, $infoDemandeur ) { } /** * Renvoi des informations sur une commande d'acte * @param string $reference * @return CmdActeReturn */ public function getCmdActe( $reference ){} /** * Commande de kbis * @param InfoCommandeKbis $infoCommande * @param InfoDemandeur $infoDemandeur * @return CmdKbisReturn */ public function setCmdKbis(InfoCommandeKbis $infoCommande, InfoDemandeur $infoDemandeur ) { $error = new ErrorType(); $ref = new RefCommande(); //Vérifier les informations switch($infoCommande->mode) { case 'courrier': break; case 'mail': break; default: exit; break; } if (empty($infoCommande->siren)) { $error->errnum = 0; $error->errmsg = 'Erreur SIREN invalide'; } else { $login = $_SERVER['PHP_AUTH_USER']; // Insertion des données commande $dataCommandes = array( 'user_login' => $login, 'user_email' => '', 'type' => 'kbis', '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, 'infoCommande' => serialize($infoCommande) ); try { $db = Zend_Db::factory($this->dbConfig->Commandes); Zend_Db_Table_Abstract::setDefaultAdapter($db); $commande = new Application_Model_Commandes(); $commande_id = $commande->insert($dataCommandes); } catch (Zend_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); } if ($commande_id) { //Enregistrement des détails de commande $dataCommandesKbis = array( 'commande_id' => $commande_id, 'siren' => $infoCommande->siren, 'raisonSociale' => '', 'fichier' => '', 'partenaireRequete' => '', 'partenaireReponse' => '', ); try { $commandeKbisTable = new Application_Model_CommandesPieces(); $commandeKbisTable->insert($dataCommandesKbis); } catch (Zend_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); } try { $row = $commande->find($commande_id); $data = $row->current(); $ref->reference = $data->id; $ref->dateCommande = $data->date_added; $ref->dateMaj = $data->date_updated; $ref->dateReception = $data->date_closed; } catch (Zend_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); $error->errnum = 0; $error->errmsg = "Commande Introuvable"; } } else { $error->errnum = 0; $error->errmsg = "Erreur enregistrement commande"; } } $output = new CmdKbisReturn(); $cmd = new CmdKbisDetail(); $cmd->infoCommande = $infoCommande; $cmd->infoDemandeur = $infoDemandeur; $cmd->refCommande = $ref; $output->commande = $cmd; $output->error = $error; return $output; } /** * Renvoi des informations sur une commande de Kbis * @param string $reference * @return CmdKbisReturn */ public function getCmdKbis( $reference ){} /** * Commande de statut association * @param InfoCommandeAsso $infoCommande * @param InfoDemandeur $infoDemandeur * @return CmdAssoReturn */ public function setCmdAsso( $infoCommande, $infoDemandeur ){} /** * Renvoi des informations sur une commande association * @param string $reference * @return CmdAssoReturn */ public function getCmdAsso( $reference ){} /** * Commande de privilèges et nantissements par email * @param InfoCommandePieces $infoCommande * @param InfoDemandeur $infoDemandeur * @return CmdPiecesReturn */ public function setCmdPieces( $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', '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, 'infoCommande' => serialize($infoCommande) ); try { $db = Zend_Db::factory($this->dbConfig->Commandes); Zend_Db_Table_Abstract::setDefaultAdapter($db); $commande = new Application_Model_Commandes(); $commande_id = $commande->insert($dataCommandes); } catch (Zend_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); } if ($commande_id) { //Enregistrement des détails de commande $dataCommandesPieces = array( 'commande_id' => $commande_id, 'siren' => $infoCommande->siren, 'raisonSociale' => '', 'fichier' => '', ); try { $commandePieces = new Application_Model_CommandesPieces(); $commandePieces->insert($dataCommandesPieces); } catch (Zend_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); } try { $row = $commande->find($commande_id); $data = $row->current(); $ref->reference = $data->id; $ref->dateCommande = $data->date_added; $ref->dateMaj = $data->date_updated; $ref->dateReception = $data->date_closed; } catch (Zend_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); $error->errnum = 0; $error->errmsg = "Commande Introuvable"; } } else { $error->errnum = 0; $error->errmsg = "Erreur enregistrement commande"; } } else { $error->errnum = 0; $error->errmsg = 'Erreur SIREN invalide'; } $output = new CmdPiecesReturn(); $cmd = new CmdPiecesDetail(); $cmd->infoCommande = $infoCommande; $cmd->infoDemandeur = $infoDemandeur; $cmd->refCommande = $ref; $output->error = $error; return $output; } /** * Renvoi des informations sur une commande pièces * @param string $reference * @return CmdPiecesReturn */ public function getCmdPieces( $reference ) { list($typeCommande, $idCommande) = explode('-', $reference); try { $db = Zend_Db::factory($this->dbConfig->Commandes); Zend_Db_Table_Abstract::setDefaultAdapter($db); $commandeTable = new Application_Model_Commandes(); $select = $commandeTable->select() ->where('type = ?', 'pieces') ->where('id = ?', $idCommande); $commandeRowset = $commandeTable->fetchAll($select); } catch (Zend_Db_Adapter_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); } $error = new ErrorType(); $ref = new RefCommande(); $infoCommande = new InfoCommandePieces(); $infoDemandeur = new InfoDemandeur(); if ( $commandeRowset->count()>0 ) { $commande = $commandeRowset->current(); $selectEven = $commandeTable->select() ->order('date_added DESC')->limit(1); $evenRowset = $commande->findDependentRowset( 'Application_Model_CommandesEven', null, $selectEven); $info = ''; if($evenRowset->count()>0){ $even = $evenRowset->current(); $info = $even->commentaire; } $ref->reference = strtoupper($commande->type).'-'.$commande->id; $ref->dateCommande = $commande->date_added; $ref->dateMaj = $commande->date_updated; $ref->dateReception = $commande->date_closed; $ref->info = $info; $ref->fichier = ''; // @todo : Détecter le fichier $ref->login = $commande->user_login; $infoCommande = unserialize($commande->infoCommande); $infoDemandeur->reference = $commande->demandeurReference; $infoDemandeur->email = $commande->demandeurEmail; $infoDemandeur->tel = $commande->demandeurTel; $infoDemandeur->nom = $commande->demandeurNom; $infoDemandeur->service = $commande->demandeurService; $infoDemandeur->societe = $commande->demandeurSociete; $infoDemandeur->adresse = $commande->demandeurAdresse; $infoDemandeur->cp = $commande->demandeurCp; $infoDemandeur->ville = $commande->demandeurVille; } else { $error->errnum = 0; $error->errmsg = 'Référence inconnue'; } $output = new CmdPiecesReturn(); $cmd = new CmdPiecesDetail(); $cmd->refCommande = $ref; $cmd->infoCommande = $infoCommande; $cmd->infoDemandeur = $infoDemandeur; $output->commande = $cmd; $output->error = $error; return $output; } /** * Retourne la liste des commandes de pièces ainsi que leur détails * @param CmdFiltrePieces $filtre * @param int $position * @param int $nbRep * @return ListeCmdPiecesReturn */ public function getListeCmdPieces( $filtre, $position = 0, $nbRep = 20 ) { $error = new ErrorType(); //Traitements des filtres pour générer la requête SQL //Selection $nbCommandes = 0; try { $db = Zend_Db::factory($this->dbConfig->Commandes); Zend_Db_Table_Abstract::setDefaultAdapter($db); $commandeTable = new Application_Model_Commandes(); $select = $commandeTable->select()->where('type = ?', 'pieces'); $countRowset = $commandeTable->fetchAll($select); $nbCommandes = $countRowset->count(); $select->order('date_added DESC')->limit($nbRep, $position); $commandeRowset = $commandeTable->fetchAll($select); } catch (Zend_Db_Adapter_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); $error->errnum = 1; $error->errmsg = 'Erreur'; } if ( $commandeRowset->count()>0 ) { $liste = array(); foreach ($commandeRowset as $commande) { $selectEven = $commandeTable->select() ->order('date_added DESC')->limit(1); $evenRowset = $commande->findDependentRowset( 'Application_Model_CommandesEven', null, $selectEven); $info = ''; if($evenRowset->count()>0){ $even = $evenRowset->current(); $info = $even->commentaire; } $ref = new RefCommande(); $ref->reference = strtoupper($commande->type).'-'.$commande->id; $ref->dateCommande = $commande->date_added; $ref->dateMaj = $commande->date_updated; $ref->dateReception = $commande->date_closed; $ref->info = $info; $ref->fichier = ''; // @todo : Détecter le fichier $ref->login = $commande->user_login; $infoCommande = new InfoCommandePieces(); $infoCommande = unserialize($commande->infoCommande); $infoDemandeur = new InfoDemandeur(); $infoDemandeur->reference = $commande->demandeurReference; $infoDemandeur->email = $commande->demandeurEmail; $infoDemandeur->tel = $commande->demandeurTel; $infoDemandeur->nom = $commande->demandeurNom; $infoDemandeur->service = $commande->demandeurService; $infoDemandeur->societe = $commande->demandeurSociete; $infoDemandeur->adresse = $commande->demandeurAdresse; $infoDemandeur->cp = $commande->demandeurCp; $infoDemandeur->ville = $commande->demandeurVille; $cmd = new CmdPiecesDetail(); $cmd->refCommande = $ref; $cmd->infoCommande = $infoCommande; $cmd->infoDemandeur = $infoDemandeur; $liste[] = $cmd; } } $output = new ListeCmdPiecesReturn(); $output->error = $error; $output->nbCommandes = $nbCommandes; $output->liste = $liste; return $output; } /** * Liste des bilans * @param string $siren * @param string $waldec * @param int $idEntreprise * @return ListeBilan */ public function getListeBilan( $siren, $waldec = null, $idEntreprise = null ){} /** * Liste des actes * @param string $siren * @return ListeActe */ public function getListeActe( $siren ){} /** * Retourne la liste des statuts de commande * @param string $type * @return CmdStatut[] */ public function getListeCmdStatut( $type ) { Zend_Registry::get('WsLogger')->info("getListeStatut - ".$type); try { $db = Zend_Db::factory($this->dbConfig->Commandes); Zend_Db_Table_Abstract::setDefaultAdapter($db); $dbStatut = new Application_Model_CommandesStatut(); $result = $dbStatut->fetchAll(array("commande_type = '$type'")); } catch (Zend_Db_Adapter_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); } $listeStatut = array(); if (count($result)>0) { foreach($result as $r) { $statut = new CmdStatut(); $statut->code = $r['code']; $statut->lib = $r['libelle']; $listeStatut[] = $statut; } } return $listeStatut; } /** * Spécifier un état défini pour une commande * (avec déclenchement d'une action) * @param int $reference * @param int $statutCode * @return bool */ public function setCmdStatut( $reference, $statutCode) { $db = Zend_Db::factory($this->dbConfig->Commandes); Zend_Db_Table_Abstract::setDefaultAdapter($db); $dbStatut = new Application_Model_CommandesStatut(); $row = $dbStatut->fetchRow(array("code = '$statutCode'")); if ( count($row)>0 && $this->setCommandeEven($reference, $row['lib']) ) { if (!empty($row['action'])){ switch($row['action']){ case 'CLOSE': //date_closed break; } } return true; } else { return false; } } /** * Spécifier un état pour une commande * @param int $reference * @param string $comment * @return bool */ public function setCmdEven ( $reference, $comment ) { $login = $_SERVER['PHP_AUTH_USER']; $db = Zend_Db::factory($this->dbConfig->Commandes); Zend_Db_Table_Abstract::setDefaultAdapter($db); try { //Vérifier que la commande existe avec la référence fournie $commandeTable = new Application_Model_Commandes(); $commandeRowset = $commandeTable->find($reference); if ($commandeRowset->count()>0) { $commande = $commandeRowset->current(); //Enregistrer l'événement $commandeEvenTable = new Application_Model_CommandesEven(); $insert = $commandeEvenTable->createRow(); $insert->commande_id = $commande->id; $insert->commentaire = $comment; $insert->user_login = $login; $insert->save(); //Mettre à jour la commande $commande->date_updated = date('Y-m-d H:i:s'); $commande->save(); return true; } else { return false; } } catch (Zend_Db_Adapter_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); return false; } } /** * Ajout du nom de fichier liée à la commande * @param int $reference * @param string $filename * @return bool */ public function setCmdDocument( $reference, $filename ) { $login = $_SERVER['PHP_AUTH_USER']; $db = Zend_Db::factory($this->dbConfig->Commandes); Zend_Db_Table_Abstract::setDefaultAdapter($db); try { //Vérifier que la commande existe avec la référence fournie $commandeTable = new Application_Model_Commandes(); $commandeRowset = $commandeTable->find($reference); if ($commandeRowset->count()>0) { $commande = $commandeRowset->current(); switch($commande->type) { case 'pieces': $infoCommandePieces = $commande->findDependentRowset('Application_Model_CommandesPieces'); if ($infoCommandePieces->count()>0) { //Update informations pieces $commandePieces = $infoCommandePieces->current(); $commandePieces->fichier = $filename; $commandePieces->save(); //Mettre à jour la commande $commande->date_updated = date('Y-m-d H:i:s'); $commande->save(); return true; } break; case 'default': return false; break; } } else { return false; } } catch (Zend_Db_Adapter_Exception $e) { Zend_Registry::get('WsLogger') ->err(__FUNCTION__.' - '.$e->getMessage()); return false; } } }