PageRenderTime 50ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/classes/controleurs/Caisse/CaisseMarcheCommandeControleur.php

http://zeybux.googlecode.com/
PHP | 384 lines | 266 code | 62 blank | 56 comment | 42 complexity | c8a7efbd512fd95813b6397c0254893c MD5 | raw file
  1. <?php
  2. //****************************************************************
  3. //
  4. // Createur : Julien PIERRE
  5. // Date de creation : 20/06/2011
  6. // Fichier : CaisseMarcheCommandeControleur.php
  7. //
  8. // Description : Classe CaisseMarcheCommandeControleur
  9. //
  10. //****************************************************************
  11. // Inclusion des classes
  12. include_once(CHEMIN_CLASSES_RESPONSE . MOD_CAISSE . "/ListeAdherentCommandeResponse.php" );
  13. include_once(CHEMIN_CLASSES_VALIDATEUR . MOD_CAISSE . "/MarcheValid.php");
  14. include_once(CHEMIN_CLASSES_SERVICE . "MarcheService.php");
  15. include_once(CHEMIN_CLASSES_SERVICE . "ReservationService.php");
  16. include_once(CHEMIN_CLASSES_SERVICE . "StockService.php");
  17. include_once(CHEMIN_CLASSES_VO . "IdReservationVO.php");
  18. include_once(CHEMIN_CLASSES_RESPONSE . MOD_CAISSE . "/InfoAchatCommandeResponse.php" );
  19. include_once(CHEMIN_CLASSES_VIEW_MANAGER . "TypePaiementVisibleViewManager.php");
  20. include_once(CHEMIN_CLASSES_VIEW_MANAGER . "StockSolidaireViewManager.php");
  21. include_once(CHEMIN_CLASSES_VIEW_MANAGER . "AdherentViewManager.php");
  22. include_once(CHEMIN_CLASSES_VIEW_MANAGER . "ListeAdherentViewManager.php");
  23. include_once(CHEMIN_CLASSES_VO . "AchatVO.php");
  24. include_once(CHEMIN_CLASSES_SERVICE . "AchatService.php");
  25. include_once(CHEMIN_CLASSES_MANAGERS . "DetailCommandeManager.php");
  26. include_once(CHEMIN_CLASSES_VR . "VRerreur.php" );
  27. include_once(CHEMIN_CLASSES_VR . "TemplateVR.php" );
  28. include_once(CHEMIN_CLASSES_VO . "IdAchatVO.php");
  29. //include_once(CHEMIN_CLASSES_VALIDATEUR . MOD_GESTION_COMMANDE . "/AfficheAchatAdherentValid.php");
  30. include_once(CHEMIN_CLASSES_SERVICE . "AchatService.php");
  31. /**
  32. * @name CaisseMarcheCommandeControleur
  33. * @author Julien PIERRE
  34. * @since 20/06/2011
  35. * @desc Classe controleur d'une CaisseMarcheCommande
  36. */
  37. class CaisseMarcheCommandeControleur
  38. {
  39. /**
  40. * @name modifierAchat($pParam)
  41. * @return ListeReservationCommandeVR
  42. * @desc Met ŕ jour un achat
  43. */
  44. public function modifierAchat($pParam) {
  45. $lVr = MarcheValid::validUpdateMarche($pParam);
  46. if($lVr->getValid()) {
  47. $lAchatService = new AchatService();
  48. // $lReservationService = new ReservationService();
  49. $lIdMarche = $pParam['id'];
  50. $lMarcheService = new MarcheService();
  51. $lMarche = $lMarcheService->get($lIdMarche);
  52. $lProduitsMarche = $lMarche->getProduits();
  53. $lAchat = NULL;
  54. $lAchatSolidaire = NULL;
  55. foreach($pParam["idAchat"] as $lId) {
  56. $lIdAchat = new IdAchatVO();
  57. $lIdAchat->setIdCompte($pParam['idCompte']);
  58. $lIdAchat->setIdCommande($lIdMarche);
  59. $lIdAchat->setIdAchat($lId);
  60. $lAchatTemp = $lAchatService->get($lIdAchat);
  61. $lTotal = $lAchatTemp->getTotal();
  62. $lTotalSolidaire = $lAchatTemp->getTotalSolidaire();
  63. if(!is_null($lTotal)) {
  64. $lAchat = $lAchatTemp;
  65. } else if(!is_null($lTotalSolidaire)) {
  66. $lAchatSolidaire = $lAchatTemp;
  67. }
  68. }
  69. $lPdtNvAchat = NULL;
  70. $lPdtNvAchatSolidaire = NULL;
  71. if(!empty($pParam["produits"])) {
  72. $lPdtNvAchat = $pParam["produits"];
  73. }
  74. if(!empty($pParam["produitsSolidaire"])) {
  75. $lPdtNvAchatSolidaire = $pParam["produitsSolidaire"];
  76. }
  77. if(!is_null($lAchat) && !is_null($lPdtNvAchat)) { // Maj de l'achat
  78. $lNvAchat = new AchatVO();
  79. $lNvAchat->getId()->setIdCompte($lAchat->getId()->getIdCompte());
  80. $lNvAchat->getId()->setIdCommande($lAchat->getId()->getIdCommande());
  81. $lNvAchat->getId()->setIdAchat($lAchat->getId()->getIdAchat());
  82. $lTotal = 0;
  83. foreach($lPdtNvAchat as $lDetail) {
  84. $lDetailCommande = DetailCommandeManager::selectByIdProduit($lDetail["id"]);
  85. $lDetailAchat = new DetailReservationVO();
  86. $lDetailAchat->setIdDetailCommande($lDetailCommande[0]->getId());
  87. $lDetailAchat->setQuantite($lDetail["quantite"]);
  88. $lDetailAchat->setMontant($lDetail["prix"]);
  89. $lNvAchat->addDetailAchat($lDetailAchat);
  90. $lTotal += $lDetail["prix"];
  91. }
  92. $lNvAchat->setTotal($lTotal);
  93. $lAchatService->set($lNvAchat);
  94. } else if(is_null($lAchat) && !is_null($lPdtNvAchat)){ // Ajout
  95. $lNvAchat = new AchatVO();
  96. $lNvAchat->getId()->setIdCompte($pParam["idCompte"]);
  97. $lNvAchat->getId()->setIdCommande($pParam["id"]);
  98. $lTotal = 0;
  99. foreach($lPdtNvAchat as $lDetail){
  100. $lDetailAchat = new DetailReservationVO();
  101. $lDcom = DetailCommandeManager::selectByIdProduit($lDetail["id"]);
  102. $lDetailAchat->setIdDetailCommande($lDcom[0]->getId());
  103. $lDetailAchat->setQuantite($lDetail["quantite"]);
  104. $lDetailAchat->setMontant($lDetail["prix"]);
  105. $lTotal += $lDetail["prix"];
  106. $lNvAchat->addDetailAchat($lDetailAchat);
  107. }
  108. $lAchatService->set($lNvAchat); // Achat des produits
  109. } else if(!is_null($lAchat) && is_null($lPdtNvAchat)){ // Supression
  110. $lAchatService->delete($lAchat->getId());
  111. }
  112. if(!is_null($lAchatSolidaire) && !is_null($lPdtNvAchatSolidaire)) { // Maj de l'achat
  113. // echo "maj";
  114. $lNvAchatSolidaire = new AchatVO();
  115. $lNvAchatSolidaire->getId()->setIdCompte($lAchatSolidaire->getId()->getIdCompte());
  116. $lNvAchatSolidaire->getId()->setIdCommande($lAchatSolidaire->getId()->getIdCommande());
  117. $lNvAchatSolidaire->getId()->setIdAchat($lAchatSolidaire->getId()->getIdAchat());
  118. $lTotal = 0;
  119. foreach($lPdtNvAchatSolidaire as $lDetail) {
  120. $lDetailCommande = DetailCommandeManager::selectByIdProduit($lDetail["id"]);
  121. $lDetailAchat = new DetailReservationVO();
  122. $lDetailAchat->setIdDetailCommande($lDetailCommande[0]->getId());
  123. $lDetailAchat->setQuantite($lDetail["quantite"]);
  124. $lDetailAchat->setMontant($lDetail["prix"]);
  125. $lDetailAchat->setIdNomProduit($lProduitsMarche[$lDetail["id"]]->getIdNom());
  126. $lDetailAchat->setUnite($lProduitsMarche[$lDetail["id"]]->getUnite());
  127. $lNvAchatSolidaire->addDetailAchatSolidaire($lDetailAchat);
  128. $lTotal += $lDetail["prix"];
  129. }
  130. $lNvAchatSolidaire->setTotalSolidaire($lTotal);
  131. $lAchatService->set($lNvAchatSolidaire);
  132. } else if(is_null($lAchatSolidaire) && !is_null($lPdtNvAchatSolidaire)){ // Ajout
  133. $lNvAchatSolidaire = new AchatVO();
  134. $lNvAchatSolidaire->getId()->setIdCompte($pParam["idCompte"]);
  135. $lNvAchatSolidaire->getId()->setIdCommande($pParam["id"]);
  136. $lTotal = 0;
  137. foreach($lPdtNvAchatSolidaire as $lDetail) {
  138. $lDetailAchat = new DetailReservationVO();
  139. $lDcom = DetailCommandeManager::selectByIdProduit($lDetail["id"]);
  140. $lDetailAchat->setIdDetailCommande($lDcom[0]->getId());
  141. $lDetailAchat->setQuantite($lDetail["quantite"]);
  142. $lDetailAchat->setMontant($lDetail["prix"]);
  143. $lTotal += $lDetail["prix"];
  144. $lDetailAchat->setIdNomProduit($lProduitsMarche[$lDetail["id"]]->getIdNom());
  145. $lDetailAchat->setUnite($lProduitsMarche[$lDetail["id"]]->getUnite());
  146. $lNvAchatSolidaire->addDetailAchatSolidaire($lDetailAchat);
  147. }
  148. $lAchatService->set($lNvAchatSolidaire); // Achat des produits
  149. } else if(!is_null($lAchatSolidaire) && is_null($lPdtNvAchatSolidaire)){ // Supression
  150. //echo "supp";
  151. $lAchatService->delete($lAchatSolidaire->getId());
  152. }
  153. // Si il y a aussi un rechargement du compte
  154. $lRechargement = $pParam['rechargement'];
  155. if(!empty($lRechargement['montant']) && $lRechargement['montant'] != 0) {
  156. $lOperation = new OperationVO();
  157. $lOperation->setIdCompte($pParam['idCompte']);
  158. $lOperation->setMontant($lRechargement['montant']);
  159. $lOperation->setLibelle("Rechargement");
  160. $lOperation->setTypePaiement($lRechargement['typePaiement']);
  161. $lOperation->setTypePaiementChampComplementaire($lRechargement['champComplementaire']);
  162. $lOperation->setIdCommande(0);
  163. $lOperationService = new OperationService();
  164. $lOperationService->set($lOperation);
  165. }
  166. }
  167. return $lVr;
  168. }
  169. /**
  170. * @name getListeAdherentMarche($pIdCommande)
  171. * @return ListeAdherentCommandeResponse
  172. * @desc Retourne la liste des adhérents qui ont réservé sur ce Marche.
  173. */
  174. public function getMarcheListeReservation($pParam) {
  175. $lVr = MarcheValid::validGetMarcheListeReservation($pParam);
  176. if($lVr->getValid()) {
  177. $lResponse = new ListeAdherentCommandeResponse();
  178. $lListe = ListeAdherentViewManager::selectAll();
  179. $lResponse->setListeAdherentCommande($lListe);
  180. $lMarcheService = new MarcheService();
  181. $lMarche = $lMarcheService->getInfoMarche($pParam['id_commande']);
  182. $lResponse->setNumeroMarche($lMarche->getNumero());
  183. return $lResponse;
  184. }
  185. return $lVr;
  186. }
  187. /**
  188. * @name getInfoAchatMarche($pParam)
  189. * @return InfoAchatCommandeResponse
  190. * @desc Retourne les infos de réservation d'un adhérent
  191. */
  192. public function getInfoAchatMarche($pParam) {
  193. $lVr = MarcheValid::validGetInfoAchatMarche($pParam);
  194. if($lVr->getValid()) {
  195. $lAdherent = AdherentViewManager::select($pParam["id_adherent"]);
  196. $lResponse = new InfoAchatCommandeResponse();
  197. $lMarcheService = new MarcheService();
  198. $lResponse->setMarche($lMarcheService->get($pParam["id_commande"]));
  199. $lReservationService = new ReservationService();
  200. $lIdReservation = new IdReservationVO();
  201. $lIdReservation->setIdCompte($lAdherent->getAdhIdCompte());
  202. $lIdReservation->setIdCommande($pParam["id_commande"]);
  203. /*$lReservation = $lReservationService->get($lIdReservation);
  204. // Retourne la réservation uniquement si elle n'est pas déjŕ récupérée
  205. if($lReservation->getEtat() == 0 || is_null($lReservation->getEtat())) {
  206. $lResponse->setReservation($lReservation->getDetailReservation());
  207. }*/
  208. //if($lReservationService->enCours($lIdReservation)) {
  209. $lResponse->setReservation($lReservationService->get($lIdReservation)->getDetailReservation());
  210. //} else {
  211. $lAchatService = new AchatService();
  212. $lIdAchat = new IdAchatVO();
  213. $lIdAchat->setIdCompte($lAdherent->getAdhIdCompte());
  214. $lIdAchat->setIdCommande($pParam["id_commande"]);
  215. $lResponse->setAchats($lAchatService->getAll($lIdAchat));
  216. //}
  217. // $lStockSolidaire = StockSolidaireViewManager::selectLivraisonSolidaire($pParam["id_commande"]);
  218. $lStockService = new StockService();
  219. $lStockSolidaire = $lStockService->selectSolidaireAllActif();
  220. $lResponse->setStockSolidaire($lStockSolidaire);
  221. $lResponse->setTypePaiement(TypePaiementVisibleViewManager::selectAll());
  222. $lResponse->setAdherent($lAdherent);
  223. return $lResponse;
  224. }
  225. return $lVr;
  226. }
  227. /**
  228. * @name getInfoMarche($pParam)
  229. * @return InfoAchatCommandeResponse
  230. * @desc Retourne les infos de réservation d'un adhérent
  231. */
  232. public function getInfoMarche($pParam) {
  233. $lVr = MarcheValid::validGetInfoMarche($pParam);
  234. if($lVr->getValid()) {
  235. $lResponse = new InfoAchatCommandeResponse();
  236. $lMarcheService = new MarcheService();
  237. $lResponse->setMarche($lMarcheService->get($pParam["id_commande"]));
  238. $lStockSolidaire = StockSolidaireViewManager::selectLivraisonSolidaire($pParam["id_commande"]);
  239. $lResponse->setStockSolidaire($lStockSolidaire);
  240. $lResponse->setTypePaiement(TypePaiementVisibleViewManager::selectAll());
  241. return $lResponse;
  242. }
  243. return $lVr;
  244. }
  245. /**
  246. * @name enregistrerAchat($pParam)
  247. * @return VR
  248. * @desc Enregistre la commande d'un adhérent
  249. */
  250. public function enregistrerAchat($pParam) {
  251. $lVr = MarcheValid::validAjout($pParam);
  252. if($lVr->getValid()) {
  253. $lIdMarche = $pParam['id'];
  254. $lIdReservation = new IdReservationVO();
  255. $lIdReservation->setIdCompte($pParam['idCompte']);
  256. $lIdReservation->setIdCommande($lIdMarche);
  257. $lMarcheService = new MarcheService();
  258. $lMarche = $lMarcheService->get($lIdMarche);
  259. $lProduitsMarche = $lMarche->getProduits();
  260. $lReservationService = new ReservationService();
  261. $lOperations = $lReservationService->selectOperationReservation($lIdReservation);
  262. $lAchat = new AchatVO();
  263. $lAchat->getId()->setIdCompte($pParam["idCompte"]);
  264. $lAchat->getId()->setIdCommande($lIdMarche);
  265. if($lOperations[0]->getTypePaiement() == 0) {
  266. $lAchat->getId()->setIdReservation($lOperations[0]->getId());
  267. }
  268. $lTotal = 0;
  269. foreach($pParam["produits"] as $lDetail){
  270. $lDetailAchat = new DetailReservationVO();
  271. $lDcom = DetailCommandeManager::selectByIdProduit($lDetail["id"]);
  272. $lDetailAchat->setIdDetailCommande($lDcom[0]->getId());
  273. $lDetailAchat->setQuantite($lDetail["quantite"]);
  274. $lDetailAchat->setMontant($lDetail["prix"]);
  275. $lTotal += $lDetail["prix"];
  276. $lAchat->addDetailAchat($lDetailAchat);
  277. }
  278. foreach($pParam["produitsSolidaire"] as $lDetail){
  279. $lDetailAchat = new DetailReservationVO();
  280. $lDcom = DetailCommandeManager::selectByIdProduit($lDetail["id"]);
  281. $lDetailAchat->setIdDetailCommande($lDcom[0]->getId());
  282. $lDetailAchat->setQuantite($lDetail["quantite"]);
  283. $lDetailAchat->setMontant($lDetail["prix"]);
  284. $lDetailAchat->setIdNomProduit($lProduitsMarche[$lDetail["id"]]->getIdNom());
  285. $lDetailAchat->setUnite($lProduitsMarche[$lDetail["id"]]->getUnite());
  286. $lTotal += $lDetail["prix"];
  287. $lAchat->addDetailAchatSolidaire($lDetailAchat);
  288. }
  289. // Si il y a aussi un rechargement du compte
  290. $lRechargement = $pParam['rechargement'];
  291. if(!empty($lRechargement['montant']) && $lRechargement['montant'] != 0) {
  292. $lOperation = new OperationVO();
  293. $lOperation->setIdCompte($pParam['idCompte']);
  294. $lOperation->setMontant($lRechargement['montant']);
  295. $lOperation->setLibelle("Rechargement");
  296. $lOperation->setTypePaiement($lRechargement['typePaiement']);
  297. $lOperation->setTypePaiementChampComplementaire($lRechargement['champComplementaire']);
  298. $lOperation->setIdCommande(0);
  299. $lTotal += $lRechargement['montant'];
  300. }
  301. if($pParam['idCompte'] == -3 && $lTotal != 0 ) { // Compte invite reste ŕ 0
  302. $lVr = new TemplateVR();
  303. $lVr->setValid(false);
  304. $lVr->getLog()->setValid(false);
  305. $lErreur = new VRerreur();
  306. $lErreur->setCode(MessagesErreurs::ERR_244_CODE);
  307. $lErreur->setMessage(MessagesErreurs::ERR_244_MSG);
  308. $lVr->getLog()->addErreur($lErreur);
  309. return $lVr;
  310. } else {
  311. $lAchatService = new AchatService();
  312. $lIdOperation = $lAchatService->set($lAchat); // Achat des produits
  313. if(!empty($lRechargement['montant']) && $lRechargement['montant'] != 0) {
  314. $lOperationService = new OperationService();
  315. $lOperationService->set($lOperation);
  316. }
  317. }
  318. }
  319. return $lVr;
  320. }
  321. }
  322. ?>