using MALDFGASSURANCE.Models; using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.IO; using System.Linq; using System.Net; using System.Web.Mvc; namespace MALDFGASSURANCE.Areas.ADHESION.Controllers { [Authorize(Roles = "Coordonnateur")] public class ASSURESController : Controller { private MALDFGEntities db = new MALDFGEntities(); // GET: WebAdhesion/ASSURES public ActionResult Index() { var aSSURE = db.ASSURE.Include(a => a.ADHERENT).Include(a => a.STATUT_ASSURANCE).Include(a => a.GROUPE_SANGUIN).Include(a => a.NIVEAU_ETUDE).Include(a => a.STATUT_MATRIMONIAL).Include(a => a.PROFESSION).Include(a => a.SEXE).Include(a => a.TYPE_ASSURE); trouvassure(); return View(aSSURE.Where(a => a.CODE_STATUT == 1).ToList()); } public void trouvassure() { var adh = db.ASSURE.Where(a => a.ID_TYPE_ASSURE == "A001").ToList(); var ass = db.ASSURE.Where(a => a.ID_TYPE_ASSURE == "A002").ToList(); int nbconj = 0; foreach (var adhr in adh as IList) { foreach (var assr in ass as IList) { if (adhr.REFERENCE_ADHERENT == assr.REFERENCE_ADHERENT) { nbconj++; ViewBag.nbconj = nbconj; } } } } // GET: WebAdhesion/ASSURES/Details/5 public ActionResult Details(string id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } ASSURE aSSURE = db.ASSURE.Find(id); if (aSSURE == null) { return HttpNotFound(); } Double Montfacture = 0; ; Double PartLDF = 0; if (db.FACTURE.Where(m => m.MATRICULE == aSSURE.MATRICULE).Count() > 0) { Montfacture = db.FACTURE.Where(m => m.MATRICULE == aSSURE.MATRICULE).Sum(m => m.MONTANT_TOTAL_FACTURE); PartLDF = (double)db.FACTURE.Where(m => m.MATRICULE == aSSURE.MATRICULE).Sum(m => m.PARTLDF); } ASSURE ListAyant = db.ASSURE.Where(x => x.ADHERENT.REFERENCE_ADHERENT.Contains(aSSURE.REFERENCE_ADHERENT)).FirstOrDefault(); int nbrAssure = db.ASSURE.Where(m => m.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT).Count(); ViewBag.MontantFacture = Montfacture; ViewBag.partLDFG = PartLDF; ViewBag.NbrAssure = nbrAssure; try { ViewBag.CotisationAssure = db.PAYERCOTISATION.Where(p => p.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT).Sum(p => p.MONTANT_PAYE); } catch (Exception e) { Console.WriteLine(e); ViewBag.CotisationAssure = 0; } ViewBag.photo = aSSURE.PHOTO; ViewData["FacturePharmacie"] = db.FACTUREPHARMACIE.Where(a => a.MATRICULE == aSSURE.MATRICULE).ToList(); ViewData["Remboursement"] = db.REMBOURSFACTURE.Where(r => r.FACTURE.ASSURE.MATRICULE == aSSURE.MATRICULE).ToList(); ViewData["Facture"] = db.FACTURE.Where(a => a.MATRICULE == aSSURE.MATRICULE).ToList(); ViewData["Ayantdroit"] = db.ASSURE.Where(x => x.ADHERENT.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT).ToList(); return View(aSSURE); } // GET: WebAdhesion/ASSURES/Create public ActionResult Create() { ViewBag.REFERENCE_ADHERENT = new SelectList(db.ADHERENT, "REFERENCE_ADHERENT", "NOMS_ET_PRENOMS"); ViewBag.CODE_STATUT = new SelectList(db.STATUT_ASSURANCE, "CODE_STATUT", "LIBELLE_STATUT"); ViewBag.ID_GROUPE_SANGUIN = new SelectList(db.GROUPE_SANGUIN, "ID_GROUPE_SANGUIN", "LIBELLE_GROUPE_SANGUIN"); ViewBag.IDNIVEAU_ETUDE = new SelectList(db.NIVEAU_ETUDE, "IDNIVEAU_ETUDE", "LIBELLENIVEAU_ETUDE"); ViewBag.CODE_STATUT_MATRIMONIALE = new SelectList(db.STATUT_MATRIMONIAL, "CODE_STATUT_MATRIMONIALE", "LIBELLE_STATUT_MATRIMONIAL"); ViewBag.IDPROFESSION = new SelectList(db.PROFESSION, "IDPROFESSION", "LIBELLEPROFESSION"); ViewBag.IDSEXE = new SelectList(db.SEXE, "IDSEXE", "LIBELLESEXE"); ViewBag.ID_TYPE_ASSURE = new SelectList(db.TYPE_ASSURE, "ID_TYPE_ASSURE", "LIBELLE_TYPE_ASSURE"); return View(); } // GET: WebAdhesion/ASSURES/Create public ActionResult CreateAssure(String id, string nom, String prenom) { ViewBag.NOM = nom; ViewBag.PRENOM = prenom; ViewBag.REFERENCE_ADHERENT = new SelectList(db.ADHERENT.Where(a => a.REFERENCE_ADHERENT == id).ToList(), "REFERENCE_ADHERENT", "NOMS_ET_PRENOMS"); ViewBag.CODE_STATUT = new SelectList(db.STATUT_ASSURANCE, "CODE_STATUT", "LIBELLE_STATUT"); ViewBag.ID_GROUPE_SANGUIN = new SelectList(db.GROUPE_SANGUIN, "ID_GROUPE_SANGUIN", "LIBELLE_GROUPE_SANGUIN"); ViewBag.IDNIVEAU_ETUDE = new SelectList(db.NIVEAU_ETUDE, "IDNIVEAU_ETUDE", "LIBELLENIVEAU_ETUDE"); ViewBag.CODE_STATUT_MATRIMONIALE = new SelectList(db.STATUT_MATRIMONIAL, "CODE_STATUT_MATRIMONIALE", "LIBELLE_STATUT_MATRIMONIAL"); ViewBag.IDPROFESSION = new SelectList(db.PROFESSION, "IDPROFESSION", "LIBELLEPROFESSION"); ViewBag.IDSEXE = new SelectList(db.SEXE, "IDSEXE", "LIBELLESEXE"); ViewBag.ID_TYPE_ASSURE = new SelectList(db.TYPE_ASSURE, "ID_TYPE_ASSURE", "LIBELLE_TYPE_ASSURE"); return View(); } // POST: WebAdhesion/ASSURES/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 = "MATRICULE,CODE_STATUT,REFERENCE_ADHERENT,CODE_STATUT_MATRIMONIALE,NOM,PRENOMS,DATE_NAISSANCE,LIEU_NAISSANCE,IDSEXE,EMAIL,IDNIVEAU_ETUDE,IDPROFESSION,ADRESSE,TAILLE,POIDS,NATIONALITE,ID_GROUPE_SANGUIN,PROFESSION_,ID_TYPE_ASSURE,DATE_DEBUT_ASSURANCE,DATE_FIN_ASSURANCE,PHOTO,IDUTILISATEUR,ETAT,DATECREATION,DATEMODIFICATION,DATESUPPRESSION")] ASSURE aSSURE) { int numeroMatricule = 0; string mymatricule = null; string message = null; string monId = null; if (ModelState.IsValid) { if (aSSURE.ID_TYPE_ASSURE == "A001") { if (db.ASSURE.Where(a => a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT).Count() <= 0) { var max = db.ASSURE.Max(a => a.MATRICULE); int.TryParse(max, out numeroMatricule); numeroMatricule = numeroMatricule + 1; mymatricule = numeroMatricule.ToString(); aSSURE.MATRICULE = mymatricule; aSSURE.DATE_DEBUT_ASSURANCE = DateTime.Now; aSSURE.IDUTILISATEUR = User.Identity.Name; aSSURE.IDPROFESSION = "PR001"; aSSURE.DATECREATION = DateTime.Now; var listeASSURE = db.ASSURE.Where(a => (a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT && a.ID_TYPE_ASSURE == "A001")).ToList(); if (listeASSURE != null) { foreach (var liste in listeASSURE as IList) { monId = liste.MATRICULE; } } if (mymatricule != null) { if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file != null && file.ContentLength > 0) { //extension de fichier string[] validFileTypes = { ".pdf", ".png", ".jpg", ".jpeg", ".PDF", ".PNG", ".JPG", ".JPEG" }; string ext = Path.GetExtension(file.FileName); String nomdufichier = mymatricule + ext; var path = Path.Combine(Server.MapPath("~/Fichier/Photoassure"), nomdufichier); file.SaveAs(path); aSSURE.PHOTO = nomdufichier; } } monId = mymatricule; } db.ASSURE.Add(aSSURE); db.SaveChanges(); return RedirectToAction("Details/" + monId, "ASSURES"); } else { message += " Assure principale existe"; } } else if (aSSURE.ID_TYPE_ASSURE == "A002") { int Nombreconjoint = db.ASSURE.Where(a => (a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT && a.ID_TYPE_ASSURE == "A002")).Count(); if (Nombreconjoint <= 0) { var listeASSURE = db.ASSURE.Where(a => (a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT && a.ID_TYPE_ASSURE == "A001")).ToList(); if (listeASSURE != null) { foreach (var liste in listeASSURE as IList) { mymatricule = liste.MATRICULE + "_" + db.ASSURE.Where(a => a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT).Count(); } var adhr = db.ASSURE.Where(a => (a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT && a.ID_TYPE_ASSURE == "A001")).ToList(); if (adhr != null) { foreach (var liste in adhr as IList) { monId = liste.MATRICULE; } } aSSURE.MATRICULE = mymatricule; aSSURE.IDUTILISATEUR = User.Identity.Name; aSSURE.DATECREATION = DateTime.Now; aSSURE.IDPROFESSION = "PR001"; aSSURE.DATE_DEBUT_ASSURANCE = DateTime.Now; if (mymatricule != null) { if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file != null && file.ContentLength > 0) { //extension de fichier string[] validFileTypes = { ".pdf", ".png", ".jpg", ".jpeg", ".PDF", ".PNG", ".JPG", ".JPEG" }; string ext = Path.GetExtension(file.FileName); String nomdufichier = mymatricule + ext; var path = Path.Combine(Server.MapPath("~/Fichier/Photoassure"), nomdufichier); file.SaveAs(path); aSSURE.PHOTO = nomdufichier; } } monId = mymatricule; } db.ASSURE.Add(aSSURE); db.SaveChanges(); return RedirectToAction("Details/" + monId, "ASSURES"); } else { message += "L'assure principale n'existe pas "; } } else { message += "Un conjoint existe deja"; } } else { if (db.ASSURE.Where(a => (a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT && a.ID_TYPE_ASSURE == "A003")).Count() <= 10) { var listeASSURE = db.ASSURE.Where(a => (a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT && a.ID_TYPE_ASSURE == "A001")).ToList(); if (listeASSURE != null) { foreach (var liste in listeASSURE as IList) { mymatricule = liste.MATRICULE + "_" + db.ASSURE.Where(a => a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT).Count(); } var adhr = db.ASSURE.Where(a => (a.REFERENCE_ADHERENT == aSSURE.REFERENCE_ADHERENT && a.ID_TYPE_ASSURE == "A001")).ToList(); if (adhr != null) { foreach (var liste in adhr as IList) { monId = liste.MATRICULE; } } aSSURE.MATRICULE = mymatricule; aSSURE.IDUTILISATEUR = User.Identity.Name; aSSURE.DATECREATION = DateTime.Now; aSSURE.IDPROFESSION = "PR001"; aSSURE.DATE_DEBUT_ASSURANCE = DateTime.Now; if (mymatricule != null) { if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file != null && file.ContentLength > 0) { //extension de fichier string[] validFileTypes = { ".pdf", ".png", ".jpg", ".jpeg", ".PDF", ".PNG", ".JPG", ".JPEG" }; string ext = Path.GetExtension(file.FileName); String nomdufichier = mymatricule + ext; var path = Path.Combine(Server.MapPath("~/Fichier/Photoassure"), nomdufichier); file.SaveAs(path); aSSURE.PHOTO = nomdufichier; } } monId = mymatricule; } db.ASSURE.Add(aSSURE); db.SaveChanges(); return RedirectToAction("Details/" + monId, "ASSURES"); } else { message += "le nombre d'enfant autorise est atteind"; } } } if (mymatricule != null) { if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file != null && file.ContentLength > 0) { //extension de fichier string[] validFileTypes = { ".pdf", ".png", ".jpg", ".jpeg", ".PDF", ".PNG", ".JPG", ".JPEG" }; string ext = Path.GetExtension(file.FileName); String nomdufichier = mymatricule + ext; var path = Path.Combine(Server.MapPath("~/Fichier/Photoassure"), nomdufichier); file.SaveAs(path); aSSURE.PHOTO = nomdufichier; } } } } ViewBag.REFERENCE_ADHERENT = new SelectList(db.ADHERENT, "REFERENCE_ADHERENT", "NOMS_ET_PRENOMS", aSSURE.REFERENCE_ADHERENT); ViewBag.CODE_STATUT = new SelectList(db.STATUT_ASSURANCE, "CODE_STATUT", "LIBELLE_STATUT", aSSURE.CODE_STATUT); ViewBag.ID_GROUPE_SANGUIN = new SelectList(db.GROUPE_SANGUIN, "ID_GROUPE_SANGUIN", "LIBELLE_GROUPE_SANGUIN", aSSURE.ID_GROUPE_SANGUIN); ViewBag.IDNIVEAU_ETUDE = new SelectList(db.NIVEAU_ETUDE, "IDNIVEAU_ETUDE", "LIBELLENIVEAU_ETUDE", aSSURE.IDNIVEAU_ETUDE); ViewBag.CODE_STATUT_MATRIMONIALE = new SelectList(db.STATUT_MATRIMONIAL, "CODE_STATUT_MATRIMONIALE", "LIBELLE_STATUT_MATRIMONIAL", aSSURE.CODE_STATUT_MATRIMONIALE); ViewBag.IDPROFESSION = new SelectList(db.PROFESSION, "IDPROFESSION", "LIBELLEPROFESSION", aSSURE.IDPROFESSION); ViewBag.IDSEXE = new SelectList(db.SEXE, "IDSEXE", "LIBELLESEXE", aSSURE.IDSEXE); ViewBag.ID_TYPE_ASSURE = new SelectList(db.TYPE_ASSURE, "ID_TYPE_ASSURE", "LIBELLE_TYPE_ASSURE", aSSURE.ID_TYPE_ASSURE); ViewBag.Message = message; return View(aSSURE); } // GET: WebAdhesion/ASSURES/Edit/5 public ActionResult Edit(string id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } ASSURE aSSURE = db.ASSURE.Find(id); if (aSSURE == null) { return HttpNotFound(); } ViewBag.REFERENCE_ADHERENT = new SelectList(db.ADHERENT, "REFERENCE_ADHERENT", "NOMS_ET_PRENOMS", aSSURE.REFERENCE_ADHERENT); ViewBag.CODE_STATUT = new SelectList(db.STATUT_ASSURANCE, "CODE_STATUT", "LIBELLE_STATUT", aSSURE.CODE_STATUT); ViewBag.ID_GROUPE_SANGUIN = new SelectList(db.GROUPE_SANGUIN, "ID_GROUPE_SANGUIN", "LIBELLE_GROUPE_SANGUIN", aSSURE.ID_GROUPE_SANGUIN); ViewBag.IDNIVEAU_ETUDE = new SelectList(db.NIVEAU_ETUDE, "IDNIVEAU_ETUDE", "LIBELLENIVEAU_ETUDE", aSSURE.IDNIVEAU_ETUDE); ViewBag.CODE_STATUT_MATRIMONIALE = new SelectList(db.STATUT_MATRIMONIAL, "CODE_STATUT_MATRIMONIALE", "LIBELLE_STATUT_MATRIMONIAL", aSSURE.CODE_STATUT_MATRIMONIALE); ViewBag.IDPROFESSION = new SelectList(db.PROFESSION, "IDPROFESSION", "LIBELLEPROFESSION", aSSURE.IDPROFESSION); ViewBag.IDSEXE = new SelectList(db.SEXE, "IDSEXE", "LIBELLESEXE", aSSURE.IDSEXE); ViewBag.ID_TYPE_ASSURE = new SelectList(db.TYPE_ASSURE, "ID_TYPE_ASSURE", "LIBELLE_TYPE_ASSURE", aSSURE.ID_TYPE_ASSURE); return View(aSSURE); } // POST: WebAdhesion/ASSURES/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 = "MATRICULE,CODE_STATUT,REFERENCE_ADHERENT,CODE_STATUT_MATRIMONIALE,NOM,PRENOMS,DATE_NAISSANCE,LIEU_NAISSANCE,IDSEXE,EMAIL,IDNIVEAU_ETUDE,IDPROFESSION,ADRESSE,TAILLE,PROFESSION_,POIDS,NATIONALITE,ID_GROUPE_SANGUIN,ID_TYPE_ASSURE,DATE_DEBUT_ASSURANCE,DATE_FIN_ASSURANCE,PHOTO,IDUTILISATEUR,ETAT,DATECREATION,DATEMODIFICATION,DATESUPPRESSION")] ASSURE aSSURE) { string mymatricule = null; if (ModelState.IsValid) { mymatricule = aSSURE.MATRICULE; aSSURE.DATEMODIFICATION = DateTime.Now; aSSURE.IDUTILISATEUR = User.Identity.Name; aSSURE.DATECREATION = DateTime.Now; aSSURE.IDPROFESSION = "PR001"; aSSURE.DATE_DEBUT_ASSURANCE = DateTime.Now; if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file != null && file.ContentLength > 0) { //extension de fichier string[] validFileTypes = { ".pdf", ".png", ".jpg", ".jpeg", ".PDF", ".PNG", ".JPG", ".JPEG" }; string ext = Path.GetExtension(file.FileName); String nomdufichier = mymatricule + ext; var path = Path.Combine(Server.MapPath("~/Fichier/Photoassure"), nomdufichier); file.SaveAs(path); aSSURE.PHOTO = nomdufichier; } } db.Entry(aSSURE).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.REFERENCE_ADHERENT = new SelectList(db.ADHERENT, "REFERENCE_ADHERENT", "NOMS_ET_PRENOMS", aSSURE.REFERENCE_ADHERENT); ViewBag.CODE_STATUT = new SelectList(db.STATUT_ASSURANCE, "CODE_STATUT", "LIBELLE_STATUT", aSSURE.CODE_STATUT); ViewBag.ID_GROUPE_SANGUIN = new SelectList(db.GROUPE_SANGUIN, "ID_GROUPE_SANGUIN", "LIBELLE_GROUPE_SANGUIN", aSSURE.ID_GROUPE_SANGUIN); ViewBag.IDNIVEAU_ETUDE = new SelectList(db.NIVEAU_ETUDE, "IDNIVEAU_ETUDE", "LIBELLENIVEAU_ETUDE", aSSURE.IDNIVEAU_ETUDE); ViewBag.CODE_STATUT_MATRIMONIALE = new SelectList(db.STATUT_MATRIMONIAL, "CODE_STATUT_MATRIMONIALE", "LIBELLE_STATUT_MATRIMONIAL", aSSURE.CODE_STATUT_MATRIMONIALE); ViewBag.IDPROFESSION = new SelectList(db.PROFESSION, "IDPROFESSION", "LIBELLEPROFESSION", aSSURE.IDPROFESSION); ViewBag.IDSEXE = new SelectList(db.SEXE, "IDSEXE", "LIBELLESEXE", aSSURE.IDSEXE); ViewBag.ID_TYPE_ASSURE = new SelectList(db.TYPE_ASSURE, "ID_TYPE_ASSURE", "LIBELLE_TYPE_ASSURE", aSSURE.ID_TYPE_ASSURE); return View(aSSURE); } // GET: WebAdhesion/ASSURES/Delete/5 public ActionResult Delete(string id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } ASSURE aSSURE = db.ASSURE.Find(id); if (aSSURE == null) { return HttpNotFound(); } return View(aSSURE); } // POST: WebAdhesion/ASSURES/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(string id) { ASSURE aSSURE = db.ASSURE.Find(id); aSSURE.DATEMODIFICATION = DateTime.Now; aSSURE.IDUTILISATEUR = User.Identity.Name; aSSURE.CODE_STATUT = 2; aSSURE.ETAT = 2; db.Entry(aSSURE).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); /* ASSURE aSSURE = db.ASSURE.Find(id); db.ASSURE.Remove(aSSURE); db.SaveChanges(); return RedirectToAction("Index");*/ } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }