PageRenderTime 44ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/FZBGsys/NsStock/StockMatierePremiere/FrTransfertMatiere.cs

https://gitlab.com/hasary/TRBsys
C# | 295 lines | 222 code | 57 blank | 16 comment | 43 complexity | 3da17d5202f6f30c5236ac23a2f6ac46 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using FZBGsys;
  10. namespace FZBGsys.NsStock
  11. {
  12. public partial class FrTransfertMatiere : Form
  13. {
  14. ModelEntities db = new ModelEntities();
  15. public FrTransfertMatiere(EnSection Destination)
  16. {
  17. InitializeComponent();
  18. InitialiseControls();
  19. this.Destination = Destination;
  20. ListToSave = new List<TransfertMatiere>();
  21. }
  22. private void InitialiseControls()
  23. {
  24. //---------------------- Fournisseur
  25. cbFournisseur.Items.Add(new Fournisseur { ID = 0, Nom = "" });
  26. // cbFournisseur.Items.AddRange(db.Fournisseurs.Where(p => p.ID > 0 ).ToArray());
  27. cbFournisseur.DisplayMember = "Nom";
  28. cbFournisseur.ValueMember = "ID";
  29. cbFournisseur.DropDownStyle = ComboBoxStyle.DropDownList;
  30. cbFournisseur.SelectedIndex = 0;
  31. panObs.Visible = Destination == EnSection.Autre;
  32. UnLoadMatiere();
  33. }
  34. private void btOuvrirStock_Click(object sender, EventArgs e)
  35. {
  36. var id = FZBGsys.NsStock.FrStockMatiere.SelectIDStockMTDialog(ListToSave, Destination, db);
  37. if (id != null)
  38. {
  39. SelectedStockMT = db.StockMatieres.SingleOrDefault(p => p.ID == id.Value);
  40. if (SelectedStockMT == null)
  41. {
  42. this.ShowError("Impossible de trouver matiere selectionnée!");
  43. UnLoadMatiere();
  44. return;
  45. }
  46. /*else if (ListToSave.Select(p=>p.StockMatiereID).ToList().Contains(SelectedStockMT.ID))
  47. {
  48. var qttEnstock = ListToSave.Where(p => p.StockMatiereID == SelectedStockMT.ID).Sum(p=>p.QunatiteUM);
  49. if (qttEnstock >= SelectedStockMT.Quantite )
  50. {
  51. this.ShowError("Quantie en stock insuffisante (déja saisie)");
  52. UnLoadMatiere();
  53. return;
  54. }
  55. }*/
  56. LoadMatiere();
  57. }
  58. }
  59. private void LoadMatiere()
  60. {
  61. UnLoadMatiere();
  62. gbMatiere.Enabled = true;
  63. var ressource = SelectedStockMT.Ressource;
  64. txtMatiere.Text = ressource.ToDescription();
  65. cbFournisseur.Items.Clear();
  66. cbFournisseur.Items.Add(new Fournisseur { ID = 0, Nom = "" });
  67. cbFournisseur.Items.AddRange(db.Fournisseurs.ToList().Where(p => p.TypeRessources.Contains(ressource.TypeRessource)).ToArray());
  68. cbFournisseur.SelectedItem = ressource.Fournisseur;
  69. txtQttEnStock.Text = SelectedStockMT.Quantite.ToAffInt();
  70. txtPiceEnStock.Text = SelectedStockMT.Piece.ToString();
  71. labUniteDeMesure.Text = labUniteDeMesure2.Text = ressource.TypeRessource.UniteDeMesure;
  72. labUniteDePiece.Text = labUniteDePiece2.Text = ressource.TypeRessource.UniteDePiece;
  73. // txtPiece.Visible = ressource.TypeRessource.DefaultUnite == (int)EnUniteParDefault.Piece;
  74. txtPiceEnStock.Enabled = ressource.TypeRessource.DefaultUnite == (int)EnUniteParDefault.Piece;
  75. }
  76. private void UnLoadMatiere()
  77. {
  78. txtMatiere.Text = "";
  79. cbFournisseur.Items.Clear();
  80. cbFournisseur.Items.Add(new Fournisseur { ID = 0, Nom = "" });
  81. txtQttEnStock.Text = "";
  82. txtPiceEnStock.Text = "";
  83. labUniteDeMesure.Text = labUniteDeMesure2.Text = "";
  84. labUniteDePiece.Text = labUniteDePiece2.Text = "";
  85. gbMatiere.Enabled = false;
  86. }
  87. internal EnSection Destination { get; set; }
  88. private void FrTransfert_FormClosing(object sender, FormClosingEventArgs e)
  89. {
  90. db.Dispose();
  91. }
  92. public StockMatiere SelectedStockMT { get; set; }
  93. private void chDateArrivage_CheckedChanged(object sender, EventArgs e)
  94. {
  95. dtDateArrivage.Visible = chDateArrivage.Checked;
  96. }
  97. private void chDateFabrication_CheckedChanged(object sender, EventArgs e)
  98. {
  99. dtDateFabrication.Visible = chDateFabrication.Checked;
  100. }
  101. private void btAjouter_Click(object sender, EventArgs e)
  102. {
  103. if (!isValidAll())
  104. {
  105. return;
  106. }
  107. var newTransfert = new TransfertMatiere();
  108. if (panObs.Visible)
  109. {
  110. newTransfert.Observation = txtObservation.Text.Trim();
  111. }
  112. newTransfert.DestinationSectionID = (int)Destination;
  113. newTransfert.Date = dtDate.Value.Date;
  114. if (chDateArrivage.Checked) newTransfert.DateArrivage = dtDateArrivage.Value.Date;
  115. if (chDateFabrication.Checked) newTransfert.DateFabrication = dtDateFabrication.Value.Date;
  116. newTransfert.Ressource = SelectedStockMT.Ressource;
  117. newTransfert.Fournisseur = (Fournisseur)cbFournisseur.SelectedItem;
  118. newTransfert.QunatiteUM = txtQuantite.Text.ParseToDec();
  119. if (SelectedStockMT.Ressource.TypeRessource.DefaultUnite == (int)EnUniteParDefault.Piece) newTransfert.QuantitePiece = txtPiece.Text.ParseToInt();
  120. //newTransfert.StockMatiere = SelectedStockMT;
  121. FZBGsys.NsStock.FrStockMatiere.RemoveFromStockMT(newTransfert, db);
  122. ListToSave.Add(newTransfert);
  123. db.AddToTransfertMatieres(newTransfert);
  124. RefreshGrid();
  125. UpdateControls();
  126. }
  127. private void UpdateControls()
  128. {
  129. UnLoadMatiere();
  130. txtQuantite.Text = "";
  131. txtPiece.Text = "";
  132. }
  133. private void RefreshGrid()
  134. {
  135. dgv.DataSource = ListToSave.Select(p => new
  136. {
  137. ID = p.ID,
  138. Date = p.Date.Value.ToShortDateString(),
  139. Matiere = p.Ressource.ToDescription(),
  140. Fournisseur = p.Fournisseur.Nom,
  141. Fabrication = (p.DateFabrication != null) ? p.DateFabrication.Value.ToShortDateString() : "",
  142. Quantie = (p.QuantitePiece != null) ? p.QuantitePiece + " " + p.Ressource.TypeRessource.UniteDePiece : "/",
  143. Total = p.QunatiteUM + " " + p.Ressource.TypeRessource.UniteDeMesure,
  144. }).ToList();
  145. dgv.HideIDColumn();
  146. }
  147. public List<TransfertMatiere> ListToSave { get; set; }
  148. private bool isValidAll()
  149. {
  150. var message = "";
  151. if (SelectedStockMT == null)
  152. {
  153. message = "Selectionner matiere première avec boutton \"Ouvrir le stock\"";
  154. }
  155. else
  156. {
  157. if (txtQuantite.Text.ParseToDec() == null)
  158. {
  159. message += "\nQuantite invalide!";
  160. }
  161. else if (txtQuantite.Text.ParseToDec() > txtQttEnStock.Text.ParseToDec())
  162. {
  163. message += "\nQuantite Insufissante !!";
  164. }
  165. if (SelectedStockMT.Ressource.TypeRessource.DefaultUnite == (int)EnUniteParDefault.Piece)
  166. {
  167. if (txtPiece.Text.ParseToInt() == null)
  168. {
  169. message += "\nQuantite invalide!";
  170. }
  171. else if (txtPiece.Text.ParseToInt() > txtPiceEnStock.Text.ParseToInt())
  172. {
  173. message += "\nQuantite Insufissante !!";
  174. }
  175. }
  176. }
  177. if (message == "")
  178. {
  179. return true;
  180. }
  181. this.ShowWarning(message);
  182. return false;
  183. }
  184. private void btAnnuler_Click(object sender, EventArgs e)
  185. {
  186. if (ListToSave == null || ListToSave.Count == 0) Dispose();
  187. else
  188. if (this.ConfirmWarning("Annuler tout et fermer ?\n(ATTENTION: rien ne sera enregistré!)"))
  189. {
  190. Dispose();
  191. }
  192. }
  193. private void btEnregistrer_Click(object sender, EventArgs e)
  194. {
  195. if (ListToSave == null || ListToSave.Count == 0)
  196. {
  197. this.ShowInformation("La liste est vide, remplire d'abord avec \"Ajouter\" ");
  198. return;
  199. }
  200. // FZBGsys.NsStock.FrStockMatiere.RemoveRangeFromStockMT(ListToSave, db);
  201. try
  202. {
  203. db.SaveChanges();
  204. Dispose();
  205. }
  206. catch (Exception exp)
  207. {
  208. this.ShowError(exp.AllMessages("Impossible d'enregistrer:"));
  209. }
  210. }
  211. private void btEnlever_Click(object sender, EventArgs e)
  212. {
  213. var index = dgv.SelectedRows[0].Index;
  214. var toDel = ListToSave.ElementAt(index);
  215. ListToSave.Remove(toDel);
  216. var toDelMatiere = toDel.StockMatiere;
  217. FZBGsys.NsStock.FrStockMatiere.AddToStockMT(toDelMatiere, db);
  218. db.DeleteObject(toDelMatiere);
  219. db.DeleteObject(toDel);
  220. RefreshGrid();
  221. }
  222. private void txtPiece_TextChanged(object sender, EventArgs e)
  223. {
  224. if (txtPiece.Text.ParseToInt() != null && SelectedStockMT.Ressource.TypeRessource.QuantiteParPieceFix == true)
  225. {
  226. txtQuantite.Text = (txtPiece.Text.ParseToInt() * SelectedStockMT.Ressource.TypeRessource.QuantiteParPiece).ToString();
  227. }
  228. }
  229. private void txtObservation_KeyPress(object sender, KeyPressEventArgs e)
  230. {
  231. if (char.IsLower(e.KeyChar))
  232. {
  233. e.KeyChar = char.ToUpper(e.KeyChar);
  234. }
  235. }
  236. }
  237. }