f_epreuve.cs 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. using Ionic.Utils.Zip;
  12. namespace Fuel01
  13. {
  14. public partial class f_epreuve : Form
  15. {
  16. DataSet1.tb_epreuveDataTable tb_epr = new DataSet1.tb_epreuveDataTable();
  17. private bool hasChanged = false;
  18. string key_new = ""; //initilalisé en création uniquement
  19. public f_epreuve(DataSet1.tb_epreuveDataTable tb_epr)
  20. {
  21. InitializeComponent();
  22. this.tb_epr = tb_epr;
  23. }
  24. private void f_epreuve_Load(object sender, EventArgs e)
  25. {
  26. tb_epr.AcceptChanges();
  27. tbepreuveBindingSource.DataSource = tb_epr;
  28. turn_txt(false);
  29. turn_bt(false);
  30. if (Program.key_ope != "" && Program.key_ope !=null )
  31. {
  32. tbepreuveBindingSource.MoveFirst();
  33. DataRowView myRow = tbepreuveBindingSource.Current as DataRowView;
  34. if ( myRow != null )
  35. while (myRow.Row["key_epr"].ToString() != Program.key_ope)
  36. {
  37. int i = tbepreuveBindingSource.Position;
  38. tbepreuveBindingSource.MoveNext();
  39. myRow = tbepreuveBindingSource.Current as DataRowView;
  40. if (i == tbepreuveBindingSource.Position)
  41. break;
  42. }
  43. }
  44. this.tbepreuveBindingSource.CurrentChanged += new System.EventHandler(this.tbepreuveBindingSource_CurrentItemChanged);
  45. this.tbepreuveBindingSource.CurrentItemChanged += new System.EventHandler(this.tbepreuveBindingSource_CurrentItemChanged);
  46. }
  47. #region affichage
  48. private void turn_txt(bool act)
  49. {
  50. text_nom_epr.Enabled = act;
  51. dt_deb_epr.Enabled = act;
  52. dt_fin_epr.Enabled = act;
  53. text_abrev_epr.Enabled = act;
  54. }
  55. private void turn_bt(bool act)
  56. {
  57. Bt_Abort.Enabled = act;
  58. bt_Valid.Enabled = act;
  59. bt_Mod.Enabled = !act;
  60. bt_Aj.Enabled = !act;
  61. bt_Sup.Enabled = !act;
  62. }
  63. #endregion
  64. #region Boutons
  65. private void bt_Mod_Click(object sender, EventArgs e)
  66. {
  67. turn_txt(true);
  68. turn_bt(true);
  69. }
  70. private void bt_Aj_Click(object sender, EventArgs e)
  71. {
  72. turn_txt(true);
  73. turn_bt(true);
  74. string key = findNewkey();
  75. key_new = key;
  76. tb_epr.Addtb_epreuveRow(key, "", DateTime.Now, DateTime.Now, "");
  77. tbepreuveBindingSource.MoveFirst();
  78. DataRowView myRow = tbepreuveBindingSource.Current as DataRowView;
  79. while (myRow.Row["key_epr"].ToString() != key)
  80. {
  81. tbepreuveBindingSource.MoveNext();
  82. myRow = tbepreuveBindingSource.Current as DataRowView;
  83. }
  84. //DirectoryInfo di = new DirectoryInfo(Program.folder);
  85. //di.CreateSubdirectory(key);
  86. Program.subfolder = Program.folder + @"\" + key;
  87. //File.Copy(Program.folder + @"\param\facture_carbu.xlsx", Program.subfolder + @"\facture_carbu.xlsx");
  88. }
  89. private void bt_Sup_Click(object sender, EventArgs e)
  90. {
  91. DataRowView myRow = tbepreuveBindingSource.Current as DataRowView;
  92. if (myRow == null) return;
  93. string msg = string.Format("Opération {0}\nEtes-vous certain de vouloir supprimer \n{1}\n\rUne archive de sauvegarde sera créée.", myRow.Row["abrev_epr"].ToString(), myRow.Row["nom_epr"].ToString());
  94. string caption = "Suppression définitive";
  95. if (MessageBox.Show(msg, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
  96. {
  97. string key = myRow.Row["key_epr"].ToString();
  98. DataSet1.tb_epreuveRow eprRow = tb_epr.FindBykey_epr(key);
  99. if (eprRow != null)
  100. {
  101. string path_epr= Program.folder + @"\" + key;
  102. string filename = Program.folder + @"\traces_archivage_" + key+".txt";
  103. StreamWriter writer = File.CreateText(filename);
  104. writer.Write("Suppression de l'opération " + eprRow.nom_epr + "\r\n");
  105. var zip = new ZipFile(Program.folder + @"\"+ key+"_"+DateTime.Now.ToString("yy_MM_dd_hh_mm_ss") + ".zip", writer);
  106. zip.AddDirectory(path_epr, key);
  107. zip.AddFile(Program.folder + @"\epreuve.json","");
  108. zip.Save();
  109. writer.Close();
  110. f_result res = new f_result(filename, zip.Name);
  111. res.ShowDialog();
  112. Directory.Delete(path_epr,true);
  113. tb_epr.Removetb_epreuveRow(eprRow);
  114. }
  115. hasChanged = true;
  116. }
  117. }
  118. private void bt_Valid_Click(object sender, EventArgs e)
  119. {
  120. tb_epr.AcceptChanges();
  121. turn_txt(false);
  122. turn_bt(false);
  123. hasChanged = true;
  124. if (key_new != "") // Mode création
  125. {
  126. DirectoryInfo di = new DirectoryInfo(Program.folder);
  127. di.CreateSubdirectory(key_new);
  128. Program.subfolder = Program.folder + @"\" + key_new;
  129. File.Copy(Program.folder + @"\param\facture_carbu.xlsx", Program.subfolder + @"\facture_carbu.xlsx");
  130. key_new = "";
  131. }
  132. }
  133. private void Bt_Abort_Click(object sender, EventArgs e)
  134. {
  135. tb_epr.RejectChanges();
  136. turn_txt(false);
  137. turn_bt(false);
  138. key_new = "";
  139. }
  140. #endregion
  141. #region fonctions
  142. private string findNewkey()
  143. {
  144. Random rand1 = new Random();
  145. string key = rand1.Next(99999).ToString();
  146. while (tb_epr.FindBykey_epr(key) != null)
  147. {
  148. MessageBox.Show(key);
  149. key = rand1.Next(99999).ToString();
  150. }
  151. return key;
  152. }
  153. #endregion
  154. private void f_epreuve_FormClosing(object sender, FormClosingEventArgs e)
  155. {
  156. DataSet1.tb_epreuveRow mydata = null;
  157. DataRowView myrow = tbepreuveBindingSource.Current as DataRowView;
  158. if (myrow != null)
  159. {
  160. mydata = myrow.Row as DataSet1.tb_epreuveRow;
  161. Program.nom_ope = mydata.nom_epr;
  162. Program.key_ope = mydata.key_epr;
  163. Program.abrev_ope = mydata.abrev_epr;
  164. }
  165. if (hasChanged) saveData();
  166. DataTable tb_epr_change = tb_epr.GetChanges();
  167. while (tb_epr_change != null)
  168. {
  169. if (MessageBox.Show("Voulez-vous Valider Oui ou Non les modifications apportées ?", "Modifications en cours!!!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation) == DialogResult.Yes)
  170. {
  171. tb_epr.AcceptChanges();
  172. saveData();
  173. tb_epr_change = tb_epr.GetChanges();
  174. }
  175. else
  176. {
  177. tb_epr.RejectChanges();
  178. tb_epr_change = tb_epr.GetChanges();
  179. }
  180. e.Cancel = (tb_epr_change != null);
  181. }
  182. }
  183. private void saveData()
  184. {
  185. DbUtil.SaveToJson<DataSet1.tb_epreuveDataTable>(Program.folder + @"\epreuve.json", tb_epr);
  186. }
  187. private void tbepreuveBindingSource_CurrentItemChanged(object sender, EventArgs e)
  188. {
  189. DataRowView myRow = tbepreuveBindingSource.Current as DataRowView;
  190. if (myRow == null) return;
  191. Program.key_ope = myRow.Row["key_epr"].ToString();
  192. Program.nom_ope = myRow.Row["nom_epr"].ToString();
  193. Program.abrev_ope = myRow.Row["abrev_epr"].ToString();
  194. StatusLabel1.Text = Program.key_ope + "-" + Program.abrev_ope + "-" + Program.nom_ope;
  195. }
  196. private void dg_epr_DoubleClick(object sender, EventArgs e)
  197. {
  198. this.Close();
  199. }
  200. private void f_epreuve_FormClosed(object sender, FormClosedEventArgs e)
  201. {
  202. tb_epr.Dispose();
  203. this.Dispose();
  204. }
  205. }
  206. }