private FACTUREViewModel SetFactureViewModel() { Factures val = new Factures(); FACTUREViewModel factureVm = new FACTUREViewModel(); factureVm.dateDebut = DateTime.Now.AddMonths(-1).AddDays(1); factureVm.dateFin = DateTime.Now; factureVm.ListRedacteur = val.GetListRedacteurItem(); return(factureVm); }
public ActionResult CreateFacture(FACTUREViewModel model, FormCollection collection) { if (ModelState.IsValid) { // Exécute le suivi de session utilisateur if (!string.IsNullOrEmpty(Request.QueryString["currentid"])) { _userId = Guid.Parse(Request.QueryString["currentid"]); Session["currentid"] = Request.QueryString["currentid"]; } else { _userId = Guid.Parse(HttpContext.User.Identity.Name); } var selectedRedacteurId = model.listRedacteurId; var newFacture = new FACTURE(); newFacture.dateDebut = model.dateDebut; newFacture.dateFin = model.dateFin; newFacture.dateEmission = DateTime.Now; var commandesFacturer = db.COMMANDEs.Where(x => x.date_livraison >= model.dateDebut && x.date_livraison <= model.dateFin && (x.STATUT_COMMANDE != null && (x.STATUT_COMMANDE.statut_cmde.Contains("Validé") || x.STATUT_COMMANDE.statut_cmde.Contains("Refusé"))) && x.factureId == null ).ToList(); if (commandesFacturer.Count() > 0) { var redacteur = db.UTILISATEURs.SingleOrDefault(x => x.userId == model.listRedacteurId); double montant = 0; Guid factureId = Guid.NewGuid(); foreach (var commande in commandesFacturer) { if (commande.STATUT_COMMANDE.statut_cmde.Contains("Validé")) { montant += Convert.ToDouble(commande.nombre_mots) * (Convert.ToDouble(redacteur.redactTarif)); } commande.factureId = factureId; commande.REDACTEUR.redactTarif = String.Format("{0:N0}", commande.REDACTEUR.redactTarif); } newFacture.montant = String.Format("{0:N0}", montant); newFacture.etat = false; newFacture.redacteurId = model.listRedacteurId; newFacture.createurId = _userId; newFacture.factureId = factureId; int maxRef = (db.FACTUREs.ToList().Count != 0) ? db.FACTUREs.Max(u => u.factureNumero) : 0; newFacture.factureNumero = maxRef + 1; db.FACTUREs.Add(newFacture); int res = db.SaveChanges(); if (res > 0) { foreach (var commande in commandesFacturer) { var status = db.STATUT_COMMANDE.SingleOrDefault(s => s.statut_cmde.Contains("Facturé")); commande.STATUT_COMMANDE = status; db.SaveChanges(); } return(RedirectToAction("ListFacture")); } } else { ViewBag.ErrorMessage = true; FACTUREViewModel factureVm = SetFactureViewModel(); return(View("Create", factureVm)); } } return(View("ErrorException")); }
// GET: Facture/Create public ActionResult Create() { FACTUREViewModel factureVm = SetFactureViewModel(); return(View(factureVm)); }