private void Suprimer_Click(object sender, RoutedEventArgs e) { if (dataGridElements.SelectedItems.Count == 1) { //Faire la modif PRODUIT produitASupprimer = (PRODUIT)dataGridElements.SelectedItem; if (MessageBox.Show("Êtes-vous sûr de vouloir supprimer cet élément ?", "Suppression", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { ((App)App.Current).entity.PRODUIT.Remove(produitASupprimer); //Sauvegarde ((App)App.Current).entity.SaveChanges(); DATA(Int32.Parse(recupvaleur.Text.ToString())); } else { //On rafraichit l'entity pour éviter les erreurs de données "fantomes" mal déliées ((App)App.Current).entity = new LISA_DIGITALEntities(); } } else { MessageBox.Show("Merci de sélectionner un et un élément maximum"); } }
// [Authorize] public async Task <HttpResponseMessage> Update(PRODUIT Prod) { try { var ProdBd = produitService.GetProduit(Prod.ID); if (ProdBd == null) { return(Request.CreateResponse(HttpStatusCode.NotFound)); } ProdBd.CODECIP = Prod.CODECIP; ProdBd.NAMEP = Prod.NAMEP; ProdBd.DESCRIPTIONS = Prod.DESCRIPTIONS; ProdBd.DOSAGE = Prod.DOSAGE; ProdBd.FORM = Prod.FORM; ProdBd.CLASS = Prod.CLASS; ProdBd.IS_ORDONNACE = Prod.IS_ORDONNACE; ProdBd.CNAM = Prod.CNAM; ProdBd.PRIXACHAT = Prod.PRIXACHAT; ProdBd.PRIXVENTE = Prod.PRIXVENTE; ProdBd.ID_LABORATOIR = Prod.ID_LABORATOIR; bool IsModified = produitService.Modifier(Prod); return(Request.CreateResponse(HttpStatusCode.OK, IsModified)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ex)); } }
//public COMMANDE listeProduitPanier(short? id) //{ // COMMANDE panier = dal.bdd.COMMANDE.FirstOrDefault(u => u.ID_UTILISATEUR == id && u.TYPE_COMMANDE == "Panier"); // if (panier != null) // { // return panier; // } // else // { // panier = creerPanier(id); // return panier; // } //} public List <PRODUIT> listeProduitPanier(short id) { List <PRODUIT> produitPanier = new List <PRODUIT>(); List <PRODUIT_COMMANDE> produitCommande = new List <PRODUIT_COMMANDE>(); COMMANDE panier = dal.bdd.COMMANDE.FirstOrDefault(u => u.ID_UTILISATEUR == id && u.TYPE_COMMANDE == "Panier"); if (panier == null) { panier = creerPanier(id); } List <PRODUIT_COMMANDE> list_Pc = dal.bdd.PRODUIT_COMMANDE.ToList(); foreach (PRODUIT_COMMANDE pc1 in list_Pc) { if (pc1.ID_COMMANDE == panier.ID_COMMANDE) { produitCommande.Add(pc1); } } //produitCommande = dal.bdd.PRODUIT_COMMANDE.Where(c => c.ID_COMMANDE == panier.ID_COMMANDE).ToList(); foreach (PRODUIT_COMMANDE pC in produitCommande) { PRODUIT pPanier = dal.bdd.PRODUIT.FirstOrDefault(p => p.ID_PRODUIT == pC.ID_PRODUIT); produitPanier.Add(pPanier); } return(produitPanier); }
public async Task <HttpResponseMessage> Add(PRODUIT Prod) { try { STOCK s = new STOCK(); if (Prod == null) { int id = produitService.GetProduits().Take(1).FirstOrDefault().ID; Prod = produitService.GetProduit(id); Prod.NAMEP = "aa74rdf"; Prod.DESCRIPTIONS = "bbb963ff"; } bool IsAdded = produitService.Ajouter(Prod); s.ID = Prod.ID; s.ID_PRODUCT = Prod.ID; s.QUANTITY = "0"; bool IsAdded2 = stockService.Ajouter(s); return(Request.CreateResponse(HttpStatusCode.OK, IsAdded)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ex)); } }
public void Supprimer() { if (dataGridElements.SelectedItems.Count == 1) { //Faire la modif PRODUIT ProduitAsuprmer = (PRODUIT)dataGridElements.SelectedItem; if (MessageBox.Show("Êtes-vous sûr de vouloir supprimer cet élément ?", "Suppression", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { ((App)App.Current).entity.PRODUIT.Remove(ProduitAsuprmer); //Sauvegarde ((App)App.Current).entity.SaveChanges(); } else { //On rafraichit l'entity pour éviter les erreurs de données "fantomes" mal déliées ((App)App.Current).entity = new LISA_DIGITALEntities(); } } else { MessageBox.Show("Merci de sélectionner un et un élément maximum"); } RefreshDatas(); }
public ActionResult DeleteConfirmed(short id) { PRODUIT pRODUIT = db.PRODUIT.Find(id); db.PRODUIT.Remove(pRODUIT); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult GENERERFACTURECONSULTATION(String id) { using (IDAL dal = new Dal()) { if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "GENERER_FACTURE_CONSULTATION")) { if (ModelState.IsValid) { FACTURE facture = new FACTURE(); facture.Dossier = dal.ObtenirDossierParId(CRYPTAGE.StringHelpers.Encrypt(id)); facture.Utilisateur = dal.ObtenirUtilisateurParId(HttpContext.User.Identity.Name); facture.FactureID = dal.EnregistrerFacture(facture); if (!String.IsNullOrEmpty(facture.FactureID)) { FACTURE fact = dal.ObtenirFactureParId(facture.FactureID); PRODUIT prod = dal.ObtenirProduitParId("R15H0520O0701190455P669 "); if (fact != null && prod != null) { FACTUREDETAILS factureDetails = new FACTUREDETAILS(); factureDetails.Facture = fact; factureDetails.Produit = prod; factureDetails.Quantite = 1; factureDetails.PrixUnitaire = prod.PrixVente; dal.EnregistrerFactureDetail(factureDetails); return(RedirectToAction("CONSULTERLISTEFACTURES")); } else { return(View("FormulaireAjoutFacture")); } } else { return(View("FormulaireAjoutFacture")); } } else { return(View("FormulaireAjoutFacture")); } } else { ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization(); return(View("Error")); } } }
public ActionResult Edit([Bind(Include = "ID_PRODUIT,ID_CATEGORIE,LIBELLE_PRODUIT,DESCRIPTION_PRODUIT,DESCRIPTIF_TECHNIQUE_PRODUIT,TYPE_PRODUIT,MOTCLE_PRODUIT,DATE_MISE_EN_LIGNE_PRODUIT")] PRODUIT pRODUIT) { if (ModelState.IsValid) { db.Entry(pRODUIT).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.ID_CATEGORIE = new SelectList(db.CATEGORIE, "ID_CATEGORIE", "LIBELLE_CATEGORIE", pRODUIT.ID_CATEGORIE); return(View(pRODUIT)); }
public async Task <HttpResponseMessage> Get(int id) { try { //id = produitService.GetProduits().Take(1).FirstOrDefault().ID; PRODUIT infoProduit = produitService.GetProduit(id); return(Request.CreateResponse(HttpStatusCode.OK, infoProduit)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ex)); } }
// GET: Administration/Produit/Details/5 public ActionResult Details(short?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PRODUIT pRODUIT = db.PRODUIT.Find(id); if (pRODUIT == null) { return(HttpNotFound()); } return(View(pRODUIT)); }
public ActionResult SupprimerPanier(short?id) { //short id = (short)Session["CurrentProdId"]; PRODUIT p1 = panierModel.getProduit(id); UTILISATEUR utilisateur = (UTILISATEUR)Session["CurrentUSer"]; if (utilisateur != null) { panierModel.SupprimerProduitPanier(p1.ID_PRODUIT, utilisateur.ID_UTILISATEUR); return(RedirectToAction("Index")); } return(View("Index")); }
// GET: Administration/Produit/Edit/5 public ActionResult Edit(short?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PRODUIT pRODUIT = db.PRODUIT.Find(id); if (pRODUIT == null) { return(HttpNotFound()); } ViewBag.ID_CATEGORIE = new SelectList(db.CATEGORIE, "ID_CATEGORIE", "LIBELLE_CATEGORIE", pRODUIT.ID_CATEGORIE); return(View(pRODUIT)); }
private void creer_Click_1(object sender, RoutedEventArgs e) { PRODUIT CE = new PRODUIT() { Label = Label.Text.ToString(), Price = Int32.Parse(Price.Text.ToString()), Description = Description.Text.ToString(), CAT_Id = 1, }; db.PRODUIT.Add(CE); db.SaveChanges(); Windows.Catalogues.Section.CreerUneSection CP = new Windows.Catalogues.Section.CreerUneSection(CE.Id, Int32.Parse(recupvaleur.Text.ToString())); CP.Show(); this.Close(); }
public ActionResult ENREGISTRERPRODUIT(ProduitVM ProduitVM) { using (IDAL dal = new Dal()) { if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "ENREGISTRER_PRODUIT")) { if (ModelState.IsValid) { PRODUIT produit = new PRODUIT(); produit.ProduitID = ProduitVM.ProduitID; produit.Stock = dal.ObtenirStockParId(ProduitVM.StockID); produit.Rayon = dal.ObtenirRayonParId(ProduitVM.RayonID); produit.Fabricant = dal.ObtenirFabricantParId(ProduitVM.FabricantID); produit.Nom = ProduitVM.Nom; produit.PrixVente = ProduitVM.PrixVente; produit.PrixAchat = ProduitVM.PrixAchat; produit.ReferenceExterne = ProduitVM.ReferenceExterne; produit.Description = ProduitVM.Description; produit.ProduitID = dal.EnregistrerProduit(produit); STOCKDETAILS stockDetails = new STOCKDETAILS() { Produit = dal.ObtenirProduitParId(produit.ProduitID), Stock = dal.ObtenirStockParId(ProduitVM.StockID), StockAlert = ProduitVM.SeuilAlert }; stockDetails.StockDetailsID = dal.EnregistrerProduitEnStock(stockDetails); return(RedirectToAction("CONSULTERLISTEPRODUITS")); } else { ViewBag.ErrorMessage = "Veuillez remplir correctement le formulaire et reessayez svp."; return(View("Error")); } } else { ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization(); return(View("Error")); } } }
public async Task <HttpResponseMessage> Delete(int Id) { try { if (Id > 0) { //int id = produitService.GetUsers().Take(1).FirstOrDefault().ID; PRODUIT Prod = produitService.GetProduit(Id); bool IsDeleted = produitService.Supprimer(Prod); return(Request.CreateResponse(HttpStatusCode.OK, IsDeleted)); } else { return(Request.CreateResponse(HttpStatusCode.OK, false)); } } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ex)); } }
public ActionResult CONSULTERPRODUIT(String Id) { using (IDAL dal = new Dal()) { if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "CONSULTER_PRODUIT")) { ProduitVM2 tempProduitVM = new ProduitVM2(); PRODUIT Produit = dal.ObtenirProduitParId(Id); tempProduitVM = dal.ConvertirProduitProduitVM20(Produit); return(View("ConsulterProduit", tempProduitVM)); } else { ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization(); return(View("Error")); } } }
public Produit(PRODUIT ProduitAmodifier = null, long a = 0) { InitializeComponent(); if (a == 0) { ListeCATEGORIE.ItemsSource = ((App)App.Current).entity.CATEGORIE.ToList(); } else { ListeCATEGORIE.ItemsSource = ((App)App.Current).entity.CATEGORIE.SqlQuery("SELECT * FROM CATEGORIE INNER JOIN PRODUIT ON PRODUIT.CAT_Id = CATEGORIE.Id INNER JOIN ZONE ON ZONE.PRO_Id = PRODUIT.Id INNER JOIN PAGE ON PAGE.Id = ZONE.PAG_Id INNER JOIN CATALOGUE ON CATALOGUE.Id = PAGE.CAT_Id INNER JOIN CATALOGUE_ENTITE on CATALOGUE_ENTITE.CAT_Id = CATALOGUE.Id where CATALOGUE_ENTITE.ENT_Id = @id", new SqlParameter("@id", a)).ToList(); } if (ProduitAmodifier == null) { this.DataContext = new PRODUIT(); } else { this.DataContext = ProduitAmodifier; } }
public void Add(Produit produit, int devisId) { PRODUIT entity = new PRODUIT(); entity.PRODUIT_NOM = produit.Nom; entity.PRODUIT_DESCRIPTION = produit.Description; entity.DEVIS_ID = devisId; entity.GAMME_ID = produit.Gamme.Id; if (produit.ModeleDeGamme.Id != 0) { entity.MODELE_DE_GAMME_ID = produit.ModeleDeGamme.Id; } else { entity.MODELE_DE_GAMME_ID = modeleGammeRepository.Add(produit.ModeleDeGamme); } using (var db = new maderaEntities()) { db.PRODUIT.Add(entity); db.SaveChanges(); } }
public bool Supprimer(PRODUIT iProduit) { return(prodService.Supprimer(iProduit)); }
public bool Modifier(PRODUIT iProduit) { return(prodService.Modifier(iProduit)); }
public bool Ajouter(PRODUIT iProduit) { return(prodService.Ajouter(iProduit)); }
public ActionResult ENREGISTRERFACTURE(FactureVM2 factureVM, String[] IdsProduitsSelectionnes, String[] QtesProduitsSelectionnes) { using (IDAL dal = new Dal()) { if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "ENREGISTRER_FACTURE")) { if (ModelState.IsValid) { FACTURE facture = new FACTURE(); facture.Dossier = dal.ObtenirDossierParId(CRYPTAGE.StringHelpers.Encrypt(factureVM.DossierID)); facture.Utilisateur = dal.ObtenirUtilisateurParId(CRYPTAGE.StringHelpers.Encrypt(factureVM.CaissierID)); facture.FactureID = dal.EnregistrerFacture(facture); if (!String.IsNullOrEmpty(facture.FactureID) && IdsProduitsSelectionnes != null && QtesProduitsSelectionnes != null) { FACTURE fact = dal.ObtenirFactureParId(facture.FactureID); FACTUREDETAILS factureDetails; int i = 0; int Quantite = 0; foreach (var idProduit in IdsProduitsSelectionnes) { if (!String.IsNullOrEmpty(idProduit) && !String.IsNullOrEmpty(QtesProduitsSelectionnes[i])) { if (idProduit != "false" && QtesProduitsSelectionnes[i] != "false") { factureDetails = new FACTUREDETAILS(); factureDetails.Facture = fact; PRODUIT Prod = dal.ObtenirProduitParId(idProduit); factureDetails.Produit = Prod; factureDetails.PrixUnitaire = Prod.PrixVente; Boolean IsConverted = int.TryParse(QtesProduitsSelectionnes[i], out Quantite); if (IsConverted) { factureDetails.Quantite = Quantite; dal.EnregistrerFactureDetail(factureDetails); } } } i += 1; } } return(RedirectToAction("CONSULTERLISTEFACTURES")); } else { return(View("FormulaireAjoutFacture")); } } else { ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization(); return(View("Error")); } } }
public ActionResult TRANSFERERSTOCK(TransfertStockVM TSVM, String[] IdsProduitATransferer, String[] QuantiteATransferer) { using (IDAL dal = new Dal()) { if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "TRANSFERER_STOCK")) { List <TransfertStockVM2> ListeProduitsTransfert = new List <TransfertStockVM2>(); if (IdsProduitATransferer != null) { TransfertStockVM2 ProduitTransfert; int i = 0; foreach (var ProduitId in IdsProduitATransferer) { ProduitTransfert = new TransfertStockVM2(); if (ProduitId != "false") { ProduitTransfert.ProduitId = ProduitId; int Qte; if (Int32.TryParse(QuantiteATransferer[i], out Qte)) { ProduitTransfert.Quantite = Qte; } ListeProduitsTransfert.Add(ProduitTransfert); } i++; } } if (ListeProduitsTransfert != null) { int i = 0; foreach (var ProduitTransfert in ListeProduitsTransfert) { if (ProduitTransfert != null) { PRODUIT Prod = dal.ObtenirProduitParId(ProduitTransfert.ProduitId); if (Prod != null) { STOCK stock = dal.ObtenirStockParId(CRYPTAGE.StringHelpers.Encrypt(TSVM.StockFromId)); if (stock != null) { List <STOCKDETAILS> StockDetailExistant = dal.ObtenirStockDetailsParProduitEtParStock(Prod.ProduitID, stock.StockID).OrderBy(stkd => stkd.DateExpiration).ToList(); int QuantiteAInserer = ProduitTransfert.Quantite; int ResteAInserer = QuantiteAInserer; int QuantiteInseree = 0; foreach (var stkd in StockDetailExistant) { if (QuantiteAInserer >= QuantiteInseree) { if (stkd != null && stkd.StockQuantity > 0) { STOCKDETAILS NewStkD = new STOCKDETAILS(); NewStkD.Produit = stkd.Produit; NewStkD.DateExpiration = stkd.DateExpiration; NewStkD.Stock = dal.ObtenirStockParId(CRYPTAGE.StringHelpers.Encrypt(TSVM.StockToId)); if (stkd.StockQuantity >= ResteAInserer) { NewStkD.StockQuantity = ResteAInserer; QuantiteInseree += ResteAInserer; stkd.StockQuantity = stkd.StockQuantity - ResteAInserer; dal.EnregistrerProduitEnStock(NewStkD); dal.EnregistrerProduitEnStock(stkd); ResteAInserer = 0; } else { NewStkD.StockQuantity = stkd.StockQuantity; QuantiteInseree += stkd.StockQuantity; dal.EnregistrerProduitEnStock(NewStkD); ResteAInserer = QuantiteAInserer - QuantiteInseree; stkd.StockQuantity = 0; dal.EnregistrerProduitEnStock(stkd); } } } else { break; } } } } } i++; } return(RedirectToAction("TRANSFERERSTOCK")); } else { ViewBag.ErrorMessage = "Veuillez selectionner les produits à transferer."; return(View("Error")); } } else { ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization(); return(View("Error")); } } }
public ActionResult APPROVISIONNERPRODUITS(ApprovisionnementStockVM ASVM, String[] IdsProduitAApprovionner, String[] QuantiteApprovisionner, String[] DateExpiration) { using (IDAL dal = new Dal()) { if (dal.VerifierAccesParUtilisateurIdParPrivilegePeut(HttpContext.User.Identity.Name, "APPROVISIONNER_PRODUITS")) { List <ApprovisionnementStockVM2> ListeAppro = new List <ApprovisionnementStockVM2>(); if (IdsProduitAApprovionner != null) { ApprovisionnementStockVM2 Appro; int i = 0; foreach (var ProduitId in IdsProduitAApprovionner) { Appro = new ApprovisionnementStockVM2(); if (ProduitId != "false") { Appro.ProduitId = ProduitId; int Qte; if (Int32.TryParse(QuantiteApprovisionner[i], out Qte)) { Appro.Quantite = Qte; } DateTime DateExp; if (DateTime.TryParse(DateExpiration[i], out DateExp)) { Appro.DateExpiration = DateExp; } ListeAppro.Add(Appro); } i++; } } if (ListeAppro != null) { int i = 0; foreach (var Appro in ListeAppro) { if (Appro != null) { PRODUIT Prod = dal.ObtenirProduitParId(Appro.ProduitId); if (Prod != null) { STOCKDETAILS StockDetail = new STOCKDETAILS(); StockDetail.Produit = Prod; STOCK stock = dal.ObtenirStockParId(ASVM.StockId); if (stock != null) { StockDetail.Stock = stock; StockDetail.DateExpiration = Appro.DateExpiration; StockDetail.StockQuantity = Appro.Quantite; List <STOCKDETAILS> StockDetailExistant = dal.ObtenirStockDetailsParProduitParStockParDateExpiration(Prod.ProduitID, stock.StockID, StockDetail.DateExpiration); Boolean EstUneMAJ = false; foreach (var stkd in StockDetailExistant) { if (stkd != null && stkd.DateExpiration == StockDetail.DateExpiration) { stkd.StockQuantity += StockDetail.StockQuantity; dal.EnregistrerProduitEnStock(stkd); EstUneMAJ = true; break; } } if (!EstUneMAJ) { dal.EnregistrerProduitEnStock(StockDetail); } } } } i++; } } return(RedirectToAction("APPROVISIONNERPRODUITS")); } else { ViewBag.ErrorMessage = dal.getErrorMessageFailedAuthorization(); return(View("Error")); } } }
public ActionResult Produit1(PRODUIT1 PRODUITS) { // ViewBag.MonParam5 = iz; try { int nbrLigne = 0; DataTable dt = new DataTable(); using (SqlConnection SqlCon = new SqlConnection(connectionString)) { SqlCon.Open(); string query = "SELECT * FROM PRODUIT"; SqlDataAdapter SqlDa = new SqlDataAdapter(query, SqlCon); SqlDa.Fill(dt); } nbrLigne = Convert.ToInt32(dt.Rows.Count.ToString()); int val = 1; if (dt.Rows.Count == 0) { using (SqlConnection SqlCon = new SqlConnection(connectionString)) { SqlCon.Open(); string query = "INSERT INTO PRODUIT (IdProd,NomPro,NbrPro,IdCat) VALUES (@IdProd,@NomPro,@NbrPro,@IdCat)"; SqlCommand SqlCom = new SqlCommand(query, SqlCon); SqlCom.Parameters.AddWithValue("@IdProd", val); SqlCom.Parameters.AddWithValue("@NomPro", PRODUITS.NomPro); SqlCom.Parameters.AddWithValue("@NbrPro", 1); SqlCom.Parameters.AddWithValue("@IdCat", IDCAT); IDPROD = val; ANDRANA.IDPROD = IDPROD; SqlCom.ExecuteNonQuery(); // return RedirectToAction("index"); ViewBag.MonParam0 = "Produit est ajouter avec succès"; return(RedirectToAction("Genre2", new { III = IDPROD })); } } else { using (SqlConnection SqlCon = new SqlConnection(connectionString)) { SqlCon.Open(); MyStoreEntities4 d = new MyStoreEntities4(); PRODUIT p1 = new PRODUIT(); p1 = d.PRODUIT.ToList().Last(); val = p1.IdProd + 1; string query = "INSERT INTO PRODUIT (IdProd,NomPro,NbrPro,IdCat) VALUES (@IdProd,@NomPro,@NbrPro,@IdCat)"; SqlCommand SqlCom = new SqlCommand(query, SqlCon); SqlCom.Parameters.AddWithValue("@IdProd", val); SqlCom.Parameters.AddWithValue("@NomPro", PRODUITS.NomPro); SqlCom.Parameters.AddWithValue("@NbrPro", 1); SqlCom.Parameters.AddWithValue("@IdCat", IDCAT); SqlCom.ExecuteNonQuery(); IDPROD = val; ANDRANA.IDPROD = IDPROD; // return RedirectToAction("Index"); ViewBag.MonParam0 = "Produit est ajouter avec succès"; return(RedirectToAction("Genre2", new { III = IDPROD })); } } // return RedirectToAction("Index"); // TODO: Add insert logic here } catch { return(RedirectToAction("HttpNotFoun", "ACCUEIL")); } }