/** * @name modifierProduit($pParam) * @return NomProduitCatalogueVR * @desc Met à jour un produit */ public function modifierProduit($pParam) { $lVr = NomProduitCatalogueValid::validUpdate($pParam); if ($lVr->getValid()) { $lId = $pParam['idNomProduit']; $lNomProduitVO = NomProduitManager::select($lId); $lNomProduitVO->setNumero($pParam['numero']); $lNomProduitVO->setNom($pParam['nom']); $lNomProduitVO->setDescription($pParam['description']); $lNomProduitVO->setIdCategorie($pParam['idCategorie']); $lNomProduitVO->setIdFerme($pParam['id']); $lNomProduitVO->setEtat(0); NomProduitManager::update($lNomProduitVO); /** Producteurs **/ $lProducteurs = NomProduitProducteurViewManager::select($lId); $lIdProducteurs = array(); $lProducteursDelete = array(); foreach ($lProducteurs as $lProducteur) { array_push($lIdProducteurs, $lProducteur->getPrdtId()); if (!in_array($lProducteur->getPrdtId(), $pParam['producteurs'])) { array_push($lProducteursDelete, $lProducteur->getNPrdtId()); } } if (!empty($lProducteursDelete)) { NomProduitProducteurManager::deleteByArray($lProducteursDelete); } $lProducteursInsert = array(); foreach ($pParam['producteurs'] as $lProducteur) { if (!in_array($lProducteur, $lIdProducteurs)) { $lNomProduitProducteurVO = new NomProduitProducteurVO(); $lNomProduitProducteurVO->setIdNomProduit($lId); $lNomProduitProducteurVO->setIdProducteur($lProducteur); $lNomProduitProducteurVO->setEtat(0); array_push($lProducteursInsert, $lNomProduitProducteurVO); } } if (!empty($lProducteursInsert)) { NomProduitProducteurManager::insertByArray($lProducteursInsert); } /** Caracteristiques **/ $lCaracteristiques = CaracteristiqueProduitViewManager::select($lId); $lIdCaracteristiques = array(); $lCaracteristiquesDelete = array(); foreach ($lCaracteristiques as $lCaracteristique) { array_push($lIdCaracteristiques, $lCaracteristique->getCarId()); if (!in_array($lCaracteristique->getCarId(), $pParam['caracteristiques'])) { array_push($lCaracteristiquesDelete, $lCaracteristique->getCarProId()); } } if (!empty($lCaracteristiquesDelete)) { CaracteristiqueProduitManager::deleteByArray($lCaracteristiquesDelete); } $lCaracteristiquesInsert = array(); foreach ($pParam['caracteristiques'] as $lCaracteristique) { if (!in_array($lCaracteristique, $lIdCaracteristiques)) { $lCaracteristiqueProduitVO = new CaracteristiqueProduitVO(); $lCaracteristiqueProduitVO->setIdNomProduit($lId); $lCaracteristiqueProduitVO->setIdCaracteristique($lCaracteristique); $lCaracteristiqueProduitVO->setEtat(0); array_push($lCaracteristiquesInsert, $lCaracteristiqueProduitVO); } } if (!empty($lCaracteristiquesInsert)) { CaracteristiqueProduitManager::insertByArray($lCaracteristiquesInsert); } /** Modeles Lot **/ $lModelesLot = ModeleLotViewManager::selectByIdNomProduit($lId); $lModelesLotDelete = array(); foreach ($lModelesLot as $lModeleLot) { $lUpdate = false; foreach ($pParam['modelesLot'] as $lNvModeleLot) { if ($lModeleLot->getMLotId() == $lNvModeleLot["id"]) { $lUpdate = true; $lModeleLotVO = new ModeleLotVO(); $lModeleLotVO->setId($lNvModeleLot["id"]); $lModeleLotVO->setIdNomProduit($lId); $lModeleLotVO->setQuantite($lNvModeleLot["quantite"]); $lModeleLotVO->setUnite($lNvModeleLot["unite"]); $lModeleLotVO->setPrix($lNvModeleLot["prix"]); $lModeleLotVO->setEtat(0); ModeleLotManager::update($lModeleLotVO); } } if (!$lUpdate) { array_push($lModelesLotDelete, $lModeleLot->getMLotId()); } } if (!empty($lModelesLotDelete)) { ModeleLotManager::deleteByArray($lModelesLotDelete); } $lModelesLotInsert = array(); foreach ($pParam['modelesLot'] as $lModeleLot) { if (empty($lModeleLot['id'])) { $lModeleLotVO = new ModeleLotVO(); $lModeleLotVO->setIdNomProduit($lId); $lModeleLotVO->setQuantite($lModeleLot["quantite"]); $lModeleLotVO->setUnite($lModeleLot["unite"]); $lModeleLotVO->setPrix($lModeleLot["prix"]); $lModeleLotVO->setEtat(0); array_push($lModelesLotInsert, $lModeleLotVO); } } if (!empty($lModelesLotInsert)) { ModeleLotManager::insertByArray($lModelesLotInsert); } } return $lVr; }
/** * @name remplirModeleLot($pId, $pIdNomProduit, $pQuantite, $pUnite, $pPrix, $pEtat) * @param int(11) * @param int(11) * @param decimal(10,2) * @param varchar(20) * @param decimal(10,2) * @param tinyint(1) * @return ModeleLotVO * @desc Retourne une ModeleLotVO remplie */ private static function remplirModeleLot($pId, $pIdNomProduit, $pQuantite, $pUnite, $pPrix, $pEtat) { $lModeleLot = new ModeleLotVO(); $lModeleLot->setId($pId); $lModeleLot->setIdNomProduit($pIdNomProduit); $lModeleLot->setQuantite($pQuantite); $lModeleLot->setUnite($pUnite); $lModeleLot->setPrix($pPrix); $lModeleLot->setEtat($pEtat); return $lModeleLot; }