fKladovschik.cs 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. namespace garment_factory
  12. {
  13. public partial class fKladovschik : Form
  14. {
  15. public fKladovschik()
  16. {
  17. InitializeComponent();
  18. }
  19. static public string idtkan, nametkan, widthtkan, lengthtkan, furid, furname;
  20. public string IdZakazchik = "";
  21. string IdTkan = "", IdFur = "";
  22. public struct Tkani
  23. {
  24. public string IdTkan, NameTkan, ColorTkan, Width, Length, Description;
  25. public Image PhotoTkan;
  26. }
  27. List<Tkani> LstTkani = new List<Tkani>();
  28. void GetTkaniFromDB()
  29. {
  30. SqlConnection con = new SqlConnection(Properties.Settings.Default.Fabrika2024ConnectionString);
  31. con.Open();
  32. SqlCommand Query = new SqlCommand("select * from Tkani t join Cveta c on t.id_cvet=c.id_cvet where Dlina > 0", con);
  33. SqlDataReader Data = Query.ExecuteReader();
  34. while (Data.Read())
  35. {
  36. Tkani Tk = new Tkani();
  37. Tk.IdTkan = Data["id_Tkani"].ToString();
  38. Tk.NameTkan = Data["Nazvanie"].ToString();
  39. Tk.ColorTkan = Data["Name_cvet"].ToString();
  40. Tk.Width = Data["Shirina"].ToString();
  41. Tk.Length = Data["Dlina"].ToString();
  42. Tk.Description = Data["Primechanie"].ToString();
  43. try
  44. {
  45. byte[] PhotoByte = (byte[])Data["Photo"];
  46. ImageConverter ImConverter = new ImageConverter();
  47. Tk.PhotoTkan = (Bitmap)ImConverter.ConvertFrom(PhotoByte);
  48. }
  49. catch
  50. {
  51. Tk.PhotoTkan = Properties.Resources.picture;
  52. }
  53. LstTkani.Add(Tk);
  54. }
  55. con.Close();
  56. }
  57. void FillLVTkani()
  58. {
  59. LVTkani.Items.Clear();
  60. ImageListTkani.Images.Clear();
  61. foreach (Tkani Tk in LstTkani)
  62. {
  63. ListViewItem LV = new ListViewItem(Tk.NameTkan);
  64. ImageListTkani.Images.Add(Tk.PhotoTkan);
  65. LV.ImageIndex = ImageListTkani.Images.Count - 1;
  66. LVTkani.Items.Add(LV);
  67. }
  68. }
  69. private void LVTkani_SelectedIndexChanged(object sender, EventArgs e)
  70. {
  71. if (LVTkani.SelectedItems.Count > 0) // есть выделенные элементы
  72. {
  73. int num = LVTkani.SelectedIndices[0]; // номер выделенного элемента
  74. NametkanTextBox.Text = LstTkani[num].NameTkan;
  75. ColorTextBox.Text = LstTkani[num].ColorTkan;
  76. WidthTextBox.Text = LstTkani[num].Width;
  77. LengthTextBox.Text = LstTkani[num].Length;
  78. DescriptionTextBox.Text = LstTkani[num].Description;
  79. }
  80. else // нет выделенных элементов
  81. {
  82. NametkanTextBox.Text = "";
  83. ColorTextBox.Text = "";
  84. WidthTextBox.Text = "";
  85. LengthTextBox.Text = "";
  86. DescriptionTextBox.Text = "";
  87. }
  88. }
  89. private void BtnProfile_Click(object sender, EventArgs e)
  90. {
  91. fProfil frm = new fProfil();
  92. frm.BsUsers.Filter = this.usersBindingSource.Filter;
  93. if (frm.ShowDialog() == DialogResult.OK)
  94. {
  95. this.usersTableAdapter.Fill(this.fabrika2024DataSet.Users);
  96. }
  97. }
  98. private void BtnGetMaterial_Click(object sender, EventArgs e)
  99. {
  100. fGetMaterial frm = new fGetMaterial();
  101. frm.ShowDialog();
  102. GetTkaniFromDB();
  103. FillLVTkani();
  104. GetFurnituraFromDB();
  105. FillLVFurnitura();
  106. }
  107. private void BtnSpisMaterial_Click(object sender, EventArgs e)
  108. {
  109. fSpisMaterial frm = new fSpisMaterial();
  110. frm.ShowDialog();
  111. GetTkaniFromDB();
  112. FillLVTkani();
  113. GetFurnituraFromDB();
  114. FillLVFurnitura();
  115. }
  116. private void LVFurnitura_SelectedIndexChanged(object sender, EventArgs e)
  117. {
  118. if (LVFurnitura.SelectedItems.Count > 0) // есть выделенные элементы
  119. {
  120. int num = LVFurnitura.SelectedIndices[0]; // номер выделенного элемента
  121. TbxCountFurSklad.Text = LstFurnitura[num].CountFur;
  122. TbxNameFur.Text = LstFurnitura[num].NameFur;
  123. }
  124. else // нет выделенных элементов
  125. {
  126. TbxCountFurSklad.Text = "";
  127. TbxNameFur.Text = "";
  128. }
  129. }
  130. public struct Furnitura
  131. {
  132. public string IdFur, NameFur, CountFur;
  133. public Image PhotoFur;
  134. }
  135. List<Furnitura> LstFurnitura = new List<Furnitura>();
  136. void GetFurnituraFromDB()
  137. {
  138. SqlConnection con = new SqlConnection(Properties.Settings.Default.Fabrika2024ConnectionString);
  139. con.Open();
  140. SqlCommand Query = new SqlCommand("select * from Furnitura where countfur > 0", con);
  141. SqlDataReader Data = Query.ExecuteReader();
  142. while (Data.Read())
  143. {
  144. Furnitura Fr = new Furnitura();
  145. Fr.IdFur = Data["idfur"].ToString();
  146. Fr.NameFur = Data["namefur"].ToString();
  147. Fr.CountFur = Data["countfur"].ToString();
  148. try
  149. {
  150. byte[] PhotoByte = (byte[])Data["photo"];
  151. ImageConverter ImConverter = new ImageConverter();
  152. Fr.PhotoFur = (Bitmap)ImConverter.ConvertFrom(PhotoByte);
  153. }
  154. catch
  155. {
  156. Fr.PhotoFur = Properties.Resources.picture;
  157. }
  158. LstFurnitura.Add(Fr);
  159. }
  160. con.Close();
  161. }
  162. void FillLVFurnitura()
  163. {
  164. LVFurnitura.Items.Clear();
  165. ImageListFur.Images.Clear();
  166. foreach (Furnitura Fr in LstFurnitura)
  167. {
  168. ListViewItem LV = new ListViewItem(Fr.NameFur);
  169. ImageListFur.Images.Add(Fr.PhotoFur);
  170. LV.ImageIndex = ImageListFur.Images.Count - 1;
  171. LVFurnitura.Items.Add(LV);
  172. }
  173. }
  174. private void fKladovschik_Load(object sender, EventArgs e)
  175. {
  176. // TODO: данная строка кода позволяет загрузить данные в таблицу "fabrika2024DataSet.Users". При необходимости она может быть перемещена или удалена.
  177. this.usersTableAdapter.Fill(this.fabrika2024DataSet.Users);
  178. string id = id_userLabel1.Text;
  179. SqlConnection con = new SqlConnection(Properties.Settings.Default.Fabrika2024ConnectionString);
  180. con.Open();
  181. string t1 = string.Format($@"select * from Users where id_user = {id}");
  182. SqlCommand query = new SqlCommand(t1, con);
  183. // выполнить запрос
  184. SqlDataReader rdr = query.ExecuteReader();
  185. while (rdr.Read())
  186. {
  187. FIO.Text = rdr["Surname"].ToString() + " " + rdr["Name"].ToString() + " " + rdr["Otch"].ToString();
  188. }
  189. con.Close();
  190. FillListZakaz();
  191. GetTkaniFromDB();
  192. FillLVTkani();
  193. GetFurnituraFromDB();
  194. FillLVFurnitura();
  195. }
  196. void FillListZakaz()
  197. {
  198. SqlConnection con = new SqlConnection(Properties.Settings.Default.Fabrika2024ConnectionString);
  199. DgvZakaz.Rows.Clear();
  200. string Query = $@"select Izdelie.Name_izd,
  201. Orders.CountIzdel ,
  202. Tkani.Nazvanie ,
  203. Furnitura.namefur ,
  204. Orders.CountFurnit ,
  205. UsersMan.Surname as mana, UsersZak.Surname as Orders
  206. from Orders, Users as UsersMan, Users as UsersZak,
  207. Tkani, Furnitura, Izdelie
  208. where
  209. UsersMan.Id_user = Orders.id_manager
  210. and UsersZak.Id_user = Orders.id_order
  211. and Tkani.Id_Tkani = Orders.id_tkani
  212. and Furnitura.idfur = Orders.id_furnitur
  213. and Izdelie.id_izdelie = Orders.id_izdelie";
  214. con.Open();
  215. SqlCommand cmd = new SqlCommand(Query, con);
  216. SqlDataReader Rez = cmd.ExecuteReader();
  217. if (DgvZakaz.Rows.Count > 0)
  218. {
  219. DgvZakaz.Rows.Clear();
  220. }
  221. while (Rez.Read())
  222. {
  223. DgvZakaz.Rows.Add(Rez["Name_izd"], Rez["Nazvanie"], Rez["namefur"], Rez["CountFurnit"], Rez["CountIzdel"], Rez["mana"], Rez["Orders"]);
  224. }
  225. con.Close();
  226. }
  227. }
  228. }