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