using MALDFGASSURANCE.Models; using System; using System.Data; using System.Data.Entity; using System.Linq; using System.Net; using System.Web.Mvc; namespace MALDFGASSURANCE.Areas.FACTURATION.Controllers { [Authorize(Roles = "Coordonnateur, MedecinConseil")] public class MEDICAMENTSController : Controller { private MALDFGEntities db = new MALDFGEntities(); // GET: FACTURATION/MEDICAMENTS public ActionResult Index() { var mEDICAMENT = db.MEDICAMENT.Include(m => m.FACTUREPHARMACIE); return View(mEDICAMENT.ToList()); } // GET: FACTURATION/MEDICAMENTS/Details/5 public ActionResult Details(decimal id) { if (id == 0) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } MEDICAMENT mEDICAMENT = db.MEDICAMENT.Find(id); if (mEDICAMENT == null) { return HttpNotFound(); } return View(mEDICAMENT); } // GET: FACTURATION/MEDICAMENTS/Create public ActionResult Create() { ViewBag.REFFACTUREPHAR = new SelectList(db.FACTUREPHARMACIE, "REFFACTUREPHAR", "MATRICULE"); return View(); } // POST: FACTURATION/MEDICAMENTS/Create // Afin de déjouer les attaques par survalidation, activez les propriétés spécifiques auxquelles vous voulez établir une liaison. Pour // plus de détails, consultez https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "REFMEDICAMENT,REFFACTUREPHAR,LIBELLE,POSOLOGIE,QUANTITE,PRIXUNITAITRE,PRIXVALIDE,IDUTILISATEUR,DATECREATION,DATEMODIFIER,DATESUPPRIMER,DATEVALIDATION")] MEDICAMENT mEDICAMENT) { if (ModelState.IsValid) { db.MEDICAMENT.Add(mEDICAMENT); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.REFFACTUREPHAR = new SelectList(db.FACTUREPHARMACIE, "REFFACTUREPHAR", "MATRICULE", mEDICAMENT.REFFACTUREPHAR); return View(mEDICAMENT); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult FactureMedicaments([Bind(Include = "REFMEDICAMENT,REFFACTUREPHAR,LIBELLE,POSOLOGIE,QUANTITE,PRIXUNITAITRE,PRIXVALIDE,IDUTILISATEUR,DATECREATION,DATEMODIFIER,DATESUPPRIMER,DATEVALIDATION")] MEDICAMENT mEDICAMENT) { FACTUREPHARMACIE fACTUREPHARMACIE = db.FACTUREPHARMACIE.Find(mEDICAMENT.REFFACTUREPHAR); try { string alerte = ""; string montantistype = ""; if (ModelState.IsValid) { if (mEDICAMENT.PRIXUNITAITRE != null) { if (db.MEDICAMENT.Where(a => (a.REFFACTUREPHAR == mEDICAMENT.REFFACTUREPHAR) && (a.LIBELLE == mEDICAMENT.LIBELLE)).Count() <= 0) { int MtPresNew = Convert.ToInt32((mEDICAMENT.PRIXUNITAITRE * mEDICAMENT.QUANTITE)); int MtPresOld = Convert.ToInt32(db.MEDICAMENT.Where(a => (a.REFFACTUREPHAR == mEDICAMENT.REFFACTUREPHAR)).Sum(m => m.PRIXUNITAITRE * m.QUANTITE)); int MnontPrest = MtPresOld + MtPresNew; if (Convert.ToInt32(fACTUREPHARMACIE.MONTANT) >= MnontPrest) { ViewBag.message += "Enregistrement effectué avec succes"; db.MEDICAMENT.Add(mEDICAMENT); db.SaveChanges(); } else { ViewBag.message += " Montant des medicaments > Montant de la facture "; } } else { ViewBag.message += "le médicament existe "; } } else { montantistype += "Le montant n'est pas saisi"; ViewBag.message = "Veuillez saisir le prix du medicament"; } //FACTUREPHARMACIE fACTUREPHARMACIE = db.FACTUREPHARMACIE.Find(mEDICAMENT.REFFACTUREPHAR); } ViewData["LISTEMEDICAMENT"] = db.MEDICAMENT.Where(m => m.REFFACTUREPHAR == "10000PHAR784_223220721093056").ToList(); ViewBag.MATRICULE = fACTUREPHARMACIE.MATRICULE; ViewBag.NOMASSURE = fACTUREPHARMACIE.ASSURE.NOM + " " + fACTUREPHARMACIE.ASSURE.PRENOMS; ViewBag.NOMETABLISSEMENT = fACTUREPHARMACIE.LIBELLE_ETABLISSEMENT; ViewBag.MONTANT = fACTUREPHARMACIE.MONTANT; ViewBag.NUMEROFACTURE = fACTUREPHARMACIE.REFFACTUREPHAR; ViewBag.NUMEROBON = fACTUREPHARMACIE.NUMERO; ViewBag.PARTASSURE = fACTUREPHARMACIE.PARTASSURE; ViewBag.PARTLDFG = fACTUREPHARMACIE.PARTLDFG; ViewBag.PRESCRIPTEUR = fACTUREPHARMACIE.PRESCRIPTEUR; ViewBag.REFFACTUREPHAR = new SelectList(db.FACTUREPHARMACIE, "REFFACTUREPHAR", "MATRICULE"); ViewBag.alerte = alerte; ViewBag.Montantistype = montantistype; ViewData["LISTEMEDICAMENT"] = db.MEDICAMENT.Where(m => m.REFFACTUREPHAR == mEDICAMENT.REFFACTUREPHAR).ToList(); ViewBag.REFFACTUREPHAR = new SelectList(db.FACTUREPHARMACIE, "REFFACTUREPHAR", "MATRICULE", mEDICAMENT.REFFACTUREPHAR); ModelState.Clear(); mEDICAMENT = new MEDICAMENT(); return View(mEDICAMENT); } catch (Exception ex) { ViewBag.message = "echec de l'ajout" + ex; ViewData["LISTEMEDICAMENT"] = null; ViewBag.MATRICULE = fACTUREPHARMACIE.MATRICULE; ViewBag.NOMASSURE = fACTUREPHARMACIE.ASSURE.NOM + " " + fACTUREPHARMACIE.ASSURE.PRENOMS; ViewBag.NOMETABLISSEMENT = fACTUREPHARMACIE.LIBELLE_ETABLISSEMENT; ViewBag.MONTANT = fACTUREPHARMACIE.MONTANT; ViewBag.NUMEROFACTURE = fACTUREPHARMACIE.REFFACTUREPHAR; ViewBag.NUMEROBON = fACTUREPHARMACIE.NUMERO; ViewBag.PARTASSURE = fACTUREPHARMACIE.PARTASSURE; ViewBag.PARTLDFG = fACTUREPHARMACIE.PARTLDFG; ViewBag.PRESCRIPTEUR = fACTUREPHARMACIE.PRESCRIPTEUR; ViewBag.REFFACTUREPHAR = new SelectList(db.FACTUREPHARMACIE, "REFFACTUREPHAR", "MATRICULE"); //ModelState.Clear(); //mEDICAMENT = new MEDICAMENT(); return View(mEDICAMENT); } } public ActionResult FactureMedicaments(String id) { if (id != null) { FACTUREPHARMACIE fACTUREPHARMACIE = db.FACTUREPHARMACIE.Find(id); ViewData["LISTEMEDICAMENT"] = db.MEDICAMENT.Where(m => m.REFFACTUREPHAR == fACTUREPHARMACIE.REFFACTUREPHAR).ToList(); ViewBag.MATRICULE = fACTUREPHARMACIE.MATRICULE; ViewBag.NOMASSURE = fACTUREPHARMACIE.ASSURE.NOM + " " + fACTUREPHARMACIE.ASSURE.PRENOMS; ViewBag.NOMETABLISSEMENT = fACTUREPHARMACIE.LIBELLE_ETABLISSEMENT; ViewBag.MONTANT = fACTUREPHARMACIE.MONTANT; ViewBag.NUMEROFACTURE = fACTUREPHARMACIE.REFFACTUREPHAR; ViewBag.NUMEROBON = fACTUREPHARMACIE.NUMERO; ViewBag.PARTASSURE = fACTUREPHARMACIE.PARTASSURE; ViewBag.PARTLDFG = fACTUREPHARMACIE.PARTLDFG; ViewBag.PRESCRIPTEUR = fACTUREPHARMACIE.PRESCRIPTEUR; ViewBag.REFFACTUREPHAR = new SelectList(db.FACTUREPHARMACIE, "REFFACTUREPHAR", "MATRICULE"); return View(); } return View("Facture"); } // GET: FACTURATION/MEDICAMENTS/Edit/5 public ActionResult Edit(decimal id) { if (id == 0) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } MEDICAMENT mEDICAMENT = db.MEDICAMENT.Find(id); if (mEDICAMENT == null) { return HttpNotFound(); } ViewBag.REFFACTUREPHAR = new SelectList(db.FACTUREPHARMACIE, "REFFACTUREPHAR", "MATRICULE", mEDICAMENT.REFFACTUREPHAR); return View(mEDICAMENT); } // POST: FACTURATION/MEDICAMENTS/Edit/5 // Afin de déjouer les attaques par survalidation, activez les propriétés spécifiques auxquelles vous voulez établir une liaison. Pour // plus de détails, consultez https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "REFMEDICAMENT,REFFACTUREPHAR,LIBELLE,POSOLOGIE,QUANTITE,PRIXUNITAITRE,PRIXVALIDE,IDUTILISATEUR,DATECREATION,DATEMODIFIER,DATESUPPRIMER,DATEVALIDATION")] MEDICAMENT mEDICAMENT) { if (db.MEDICAMENT.Where(m => m.REFMEDICAMENT == mEDICAMENT.REFMEDICAMENT).Count() > 0) { if (ModelState.IsValid) { MEDICAMENT eDICAMENT = new MEDICAMENT(); eDICAMENT = db.MEDICAMENT.Find(mEDICAMENT.REFMEDICAMENT); eDICAMENT.POSOLOGIE = mEDICAMENT.POSOLOGIE; eDICAMENT.LIBELLE = mEDICAMENT.LIBELLE; eDICAMENT.PRIXUNITAITRE = mEDICAMENT.PRIXUNITAITRE; eDICAMENT.QUANTITE = mEDICAMENT.QUANTITE; db.Entry(eDICAMENT).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("FactureMedicaments/" + eDICAMENT.REFFACTUREPHAR); } } ViewBag.Message = " La reference est imtrouvable"; ViewBag.REFFACTUREPHAR = new SelectList(db.FACTUREPHARMACIE, "REFFACTUREPHAR", "MATRICULE", mEDICAMENT.REFFACTUREPHAR); return View(mEDICAMENT); } // GET: FACTURATION/MEDICAMENTS/Delete/5 public ActionResult Delete(decimal id) { if (id == 0) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } MEDICAMENT mEDICAMENT = db.MEDICAMENT.Find(id); if (mEDICAMENT == null) { return HttpNotFound(); } return View(mEDICAMENT); } public ActionResult Deletenew(decimal id) { if (id == 0) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } MEDICAMENT mEDICAMENT = db.MEDICAMENT.Find(id); var REFFACTUREPHAR = mEDICAMENT.REFFACTUREPHAR; db.MEDICAMENT.Remove(mEDICAMENT); db.SaveChanges(); return RedirectToAction("FactureMedicaments/" + REFFACTUREPHAR, "MEDICAMENTS"); } // POST: FACTURATION/MEDICAMENTS/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(decimal id) { MEDICAMENT mEDICAMENT = db.MEDICAMENT.Find(id); db.MEDICAMENT.Remove(mEDICAMENT); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }