RestaurationFormulairesController.cs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. using System.Net;
  2. using System.Web.Mvc;
  3. using CD67.FicheCollege.Entity;
  4. using CD67.FicheCollege.Factory;
  5. using CD67.FicheCollege.MVC.Models;
  6. using System.Linq;
  7. using System.Collections.Generic;
  8. using System;
  9. namespace CD67.FicheCollege.MVC.Controllers
  10. {
  11. public class RestaurationFormulairesController : Controller
  12. {
  13. private Entities db = new Entities();
  14. // GET: RestaurationFormulaires/Details/5
  15. public ActionResult Details(int? id)
  16. {
  17. if (id == null)
  18. {
  19. return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  20. }
  21. CollegeFactory colFact = new CollegeFactory(db);
  22. College college = colFact.getById(id.Value);
  23. if (college == null)
  24. {
  25. return HttpNotFound();
  26. }
  27. RestaurationFormulaireFactory restoFact = new RestaurationFormulaireFactory(db);
  28. RestaurationFormulaire restoForm = restoFact.getBy(x => x.College_Id == id.Value);
  29. // si null on est en mode création
  30. if (restoForm == null)
  31. return RedirectToAction("Edit", "RestaurationFormulaires", new { id = college.Id, mode = ModeAcces.Creation });
  32. AnneeFactory fact = new AnneeFactory(db);
  33. Annee annee = fact.getById(college.Annee_Id);
  34. ViewBag.AnneeEnCours = annee.AnneeRentree;
  35. RestaurationParametreFactory paramFact = new RestaurationParametreFactory(db);
  36. RestaurationParametre param = paramFact.getBy(x => x.Annee_Id == annee.Id);
  37. ViewBag.Param = param;
  38. restoForm.College = college;
  39. RestaurationFormulairesRepaFactory formRepasFact = new RestaurationFormulairesRepaFactory(db);
  40. restoForm.RestaurationFormulairesRepas = formRepasFact.getByForm(restoForm.Id);
  41. int total = formRepasFact.getSumTotal(restoForm.Id);
  42. ViewBag.SumTotal = total;
  43. int moyenneTotal = formRepasFact.getMoyTotal(restoForm.Id);
  44. ViewBag.MoyenneTotal = moyenneTotal;
  45. RestaurationFormulaireViewModel model = new RestaurationFormulaireViewModel(restoForm, ModeAcces.Lecture);
  46. return View(model);
  47. }
  48. // GET: RestaurationFormulaires/Edit/5
  49. public ActionResult Edit(int? id, ModeAcces mode)
  50. {
  51. if (id == null)
  52. {
  53. return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
  54. }
  55. CollegeFactory colFact = new CollegeFactory(db);
  56. College college = colFact.getById(id.Value);
  57. if (college == null)
  58. {
  59. return HttpNotFound();
  60. }
  61. RestaurationFormulaireFactory restoFact = new RestaurationFormulaireFactory(db);
  62. RestaurationFormulaire restoForm = restoFact.getBy(x => x.College_Id == id.Value);
  63. List<RestaurationFormulairesRepa> listeFormRepas = new List<RestaurationFormulairesRepa>();
  64. AnneeFactory fact = new AnneeFactory(db);
  65. Annee annee = fact.getById(college.Annee_Id);
  66. ViewBag.AnneeEnCours = annee.AnneeRentree;
  67. RestaurationParametreFactory paramFact = new RestaurationParametreFactory(db);
  68. RestaurationParametre param = paramFact.getBy(x => x.Annee_Id == annee.Id);
  69. ViewBag.Param = param;
  70. RestaurationFormulairesRepaFactory formRepasFact = new RestaurationFormulairesRepaFactory(db);
  71. RestaurationTypesRepaFactory typeRepasFact = new RestaurationTypesRepaFactory(db);
  72. if (restoForm == null)
  73. {
  74. restoForm = new RestaurationFormulaire();
  75. restoForm.Id = Guid.NewGuid();
  76. restoForm.College_Id = college.Id;
  77. restoForm.Statut = Constants.Statut.EN_COURS_DE_SAISIE.ToString();
  78. restoForm.College = college;
  79. foreach (RestaurationTypesRepa listeTypeRepas in param.RestaurationTypesRepas)
  80. {
  81. RestaurationFormulairesRepa getRepas = new RestaurationFormulairesRepa();
  82. getRepas.RestaurationFormulaires_Id = restoForm.Id;
  83. getRepas.RestaurationTypesRepas_Id = listeTypeRepas.Id;
  84. getRepas.RestaurationTypesRepa = typeRepasFact.getById(listeTypeRepas.Id);
  85. listeFormRepas.Add(getRepas);
  86. }
  87. restoForm.RestaurationFormulairesRepas = listeFormRepas;
  88. }
  89. else
  90. {
  91. restoForm.College = college;
  92. restoForm.RestaurationFormulairesRepas = formRepasFact.getByForm(restoForm.Id);
  93. }
  94. RestaurationFormulaireViewModel model = new RestaurationFormulaireViewModel(restoForm, mode);
  95. return View(model);
  96. }
  97. // POST: RestaurationFormulaires/Edit/5
  98. // Afin de déjouer les attaques par sur-validation, activez les propriétés spécifiques que vous voulez lier. Pour
  99. // plus de détails, voir http://go.microsoft.com/fwlink/?LinkId=317598.
  100. [HttpPost]
  101. [ValidateAntiForgeryToken]
  102. public ActionResult Edit(int id, ModeAcces mode, RestaurationFormulaire form, List<RestaurationFormulairesRepa> repas)
  103. {
  104. RestaurationFormulaireFactory formFact = new RestaurationFormulaireFactory(db);
  105. RestaurationFormulairesRepaFactory formRepasFact = new RestaurationFormulairesRepaFactory(db);
  106. CollegeFactory colFact = new CollegeFactory(db);
  107. College college = colFact.getById(id);
  108. form.College = college;
  109. AnneeFactory fact = new AnneeFactory(db);
  110. Annee annee = fact.getById(college.Annee_Id);
  111. ViewBag.AnneeEnCours = annee.AnneeRentree;
  112. RestaurationParametreFactory paramFact = new RestaurationParametreFactory(db);
  113. RestaurationParametre param = paramFact.getBy(x => x.Annee_Id == annee.Id);
  114. ViewBag.Param = param;
  115. if (ModelState.IsValid)
  116. {
  117. if (mode == ModeAcces.Creation)
  118. formFact.add(ref form);
  119. else
  120. formFact.update(ref form);
  121. foreach (RestaurationFormulairesRepa listeRepas in repas)
  122. {
  123. RestaurationFormulairesRepa getRepas = listeRepas;
  124. if (listeRepas.Id == 0)
  125. formRepasFact.add(ref getRepas);
  126. else
  127. formRepasFact.update(ref getRepas);
  128. }
  129. return RedirectToAction("Index", "Restauration", new { annee_id = param.Annee_Id });
  130. }
  131. form.RestaurationFormulairesRepas = formRepasFact.getByForm(form.Id);
  132. RestaurationFormulaireViewModel model = new RestaurationFormulaireViewModel(form, ModeAcces.Modification);
  133. return View(form);
  134. }
  135. // GET: RestaurationFormulaires/Finish/5
  136. public ActionResult Finish(int? id)
  137. {
  138. CollegeFactory colFact = new CollegeFactory(db);
  139. College college = colFact.getById(id);
  140. RestaurationFormulaireFactory restoFact = new RestaurationFormulaireFactory(db);
  141. RestaurationFormulaire restoForm = restoFact.getBy(x => x.College_Id == id.Value);
  142. restoForm.Statut = Constants.Statut.PROPOSE.ToString();
  143. restoFact.update(ref restoForm);
  144. return RedirectToAction("Details", new { id = college.Id });
  145. }
  146. // GET: RestaurationFormulaires/Input/5
  147. public ActionResult Input(int? id)
  148. {
  149. CollegeFactory colFact = new CollegeFactory(db);
  150. College college = colFact.getById(id);
  151. RestaurationFormulaireFactory restoFact = new RestaurationFormulaireFactory(db);
  152. RestaurationFormulaire restoForm = restoFact.getBy(x => x.College_Id == id.Value);
  153. restoForm.Statut = Constants.Statut.EN_COURS_DE_SAISIE.ToString();
  154. restoFact.update(ref restoForm);
  155. return RedirectToAction("Details", new { id = college.Id });
  156. }
  157. // GET: RestaurationFormulaires/Validate/5
  158. public ActionResult Validate(int? id)
  159. {
  160. CollegeFactory colFact = new CollegeFactory(db);
  161. College college = colFact.getById(id);
  162. RestaurationFormulaireFactory restoFact = new RestaurationFormulaireFactory(db);
  163. RestaurationFormulaire restoForm = restoFact.getBy(x => x.College_Id == id.Value);
  164. restoForm.Statut = Constants.Statut.VALIDE.ToString();
  165. restoFact.update(ref restoForm);
  166. return RedirectToAction("Details", new { id = college.Id });
  167. }
  168. protected override void Dispose(bool disposing)
  169. {
  170. if (disposing)
  171. {
  172. db.Dispose();
  173. }
  174. base.Dispose(disposing);
  175. }
  176. }
  177. }