FormWorkPlace.cs 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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 СУБД_Техносервис
  12. {
  13. public partial class FormWorkPlace : Form
  14. {
  15. public FormWorkPlace()
  16. {
  17. InitializeComponent();
  18. }
  19. public static string TxtCon = "Data Source=213.155.192.79,3002;Initial Catalog=TechServiceBAU;Persist Security Info=True;User ID=u21baranov;Password=au5p";
  20. public static string IdManager = "";
  21. /// <summary>
  22. /// вывод данных в виде плиточного интерфейса
  23. /// </summary>
  24. void OutputRequest()
  25. {
  26. string Uslovie = "";
  27. if (RbtInfo.Checked)
  28. {
  29. Uslovie = $@"where (EquipmentDefect Like '%{TbxFind.Text}%' or Status.Title Like '%{TbxFind.Text}%' or (SELECT String_AGG(Master.Surname + ' ' + Master.Name + ' ' + Master.Patronymic, ', ')
  30. FROM Employee AS Master INNER JOIN
  31. ExecutionRequest ON Master.IdEmployee = ExecutionRequest.IdMaster
  32. where ExecutionRequest.IdRequest = Request.IdRequest) Like '%{TbxFind.Text}%')";
  33. }
  34. else if (RbtNum.Checked && TbxFind.Text != "")
  35. {
  36. try
  37. {
  38. Uslovie = $"where IdRequest = {int.Parse(TbxFind.Text)}";
  39. }
  40. catch
  41. {
  42. Uslovie = $"where IdRequest = 0";
  43. }
  44. }
  45. if (CmbDefect.SelectedIndex > 0)
  46. Uslovie += $" and TypeDefect.Title = '{CmbDefect.Text}'";
  47. SqlConnection con = new SqlConnection(TxtCon);
  48. con.Open();
  49. string TxtQuery = @"SELECT Request.IdRequest, Manager.Photo, (Manager.Surname + ' ' + Manager.Name + ' ' + Manager.Patronymic) as FIOManager, (Client.Surname + ' ' + Client.Name + ' ' + Client.Patronymic) as FIOClient, Request.EquipmentDefect, Request.DateAccepting, TypeDefect.Title as TypeDefect,
  50. Status.Title AS Statys, (SELECT String_AGG(Master.Surname + ' ' + Master.Name + ' ' + Master.Patronymic, ', ')
  51. FROM Employee AS Master INNER JOIN
  52. ExecutionRequest ON Master.IdEmployee = ExecutionRequest.IdMaster
  53. where ExecutionRequest.IdRequest = Request.IdRequest) as FIOMasters
  54. FROM Client INNER JOIN
  55. Request ON Client.IdClient = Request.IdClient INNER JOIN
  56. Employee AS Manager ON Request.IdManager = Manager.IdEmployee INNER JOIN
  57. TypeDefect ON Request.IdTypeDefect = TypeDefect.IdTypeDefect INNER JOIN
  58. Status ON Request.IdStatus = Status.IdStatus " + Uslovie;
  59. SqlCommand cmd = new SqlCommand(TxtQuery, con);
  60. SqlDataReader Rez = cmd.ExecuteReader();
  61. DgvRequest.Rows.Clear();
  62. while (Rez.Read())
  63. {
  64. string TxtInfo = $@"Менеджер: {Rez["FIOManager"]}
  65. Клиент: {Rez["FIOClient"]}
  66. Оборудование: {Rez["EquipmentDefect"]}
  67. Заявка добавлена: {Rez["DateAccepting"]}
  68. Тип неисправности: {Rez["TypeDefect"]}
  69. Статус заявки {Rez["Statys"]}";
  70. try
  71. {
  72. DgvRequest.Rows.Add(Rez["IdRequest"], Image.FromFile(Application.StartupPath + "\\Photo\\" + Rez["Photo"]), TxtInfo, $"Исполнители: {Rez["FIOMasters"]}");
  73. }
  74. catch
  75. {
  76. DgvRequest.Rows.Add(Rez["IdRequest"], Image.FromFile(Application.StartupPath + "\\Photo\\Picture.png"), TxtInfo, $"Исполнители: {Rez["FIOMasters"]}");
  77. }
  78. if (Rez["Statys"].ToString() == "В ожидании")
  79. DgvRequest.Rows[DgvRequest.RowCount - 1].DefaultCellStyle.BackColor = Color.Yellow;
  80. }
  81. ToolSCount.Text = $"Записей {DgvRequest.RowCount} из {BsRequest.Count}";
  82. con.Close();
  83. }
  84. private void FormWorkPlace_Load(object sender, EventArgs e)
  85. {
  86. // TODO: данная строка кода позволяет загрузить данные в таблицу "techServiceBAUDataSet.Request". При необходимости она может быть перемещена или удалена.
  87. this.requestTableAdapter.Fill(this.techServiceBAUDataSet.Request);
  88. // TODO: данная строка кода позволяет загрузить данные в таблицу "techServiceBAUDataSet.AllTypeDefect". При необходимости она может быть перемещена или удалена.
  89. this.allTypeDefectTableAdapter.Fill(this.techServiceBAUDataSet.AllTypeDefect);
  90. // TODO: данная строка кода позволяет загрузить данные в таблицу "techServiceBAUDataSet.AllTypeDefect". При необходимости она может быть перемещена или удалена.
  91. this.allTypeDefectTableAdapter.Fill(this.techServiceBAUDataSet.AllTypeDefect);
  92. // TODO: данная строка кода позволяет загрузить данные в таблицу "techServiceBAUDataSet.Employee". При необходимости она может быть перемещена или удалена.
  93. this.employeeTableAdapter.Fill(this.techServiceBAUDataSet.Employee);
  94. OutputRequest();
  95. try
  96. {
  97. PbxPhoto.Image = Image.FromFile(Application.StartupPath + $"\\Photo\\{LblPhoto.Text}");
  98. }
  99. catch { }
  100. IdManager = ((DataRowView)BsEmployee.Current)[0].ToString();
  101. LblPhoto.Hide();
  102. LblIdRole.Hide();
  103. if (LblIdRole.Text == "1")
  104. {
  105. LblTitleWork.Text = "Рабочее место менеджера";
  106. BtnProf.Visible = false;
  107. }
  108. else
  109. {
  110. LblTitleWork.Text = "Рабочее место мастера";
  111. BtnAdd.Visible = false;
  112. BtnInfo.Visible = false;
  113. }
  114. }
  115. private void TbxFind_TextChanged(object sender, EventArgs e)
  116. {
  117. OutputRequest();
  118. }
  119. private void RbtNum_CheckedChanged(object sender, EventArgs e)
  120. {
  121. OutputRequest();
  122. }
  123. private void CmbDefect_SelectedIndexChanged(object sender, EventArgs e)
  124. {
  125. OutputRequest();
  126. }
  127. private void BtnAdd_Click(object sender, EventArgs e)
  128. {
  129. FormAddEditRequest Frm = new FormAddEditRequest();
  130. Frm.ShowDialog();
  131. this.requestTableAdapter.Fill(this.techServiceBAUDataSet.Request);
  132. OutputRequest();
  133. }
  134. private void DgvRequest_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
  135. {
  136. if (LblIdRole.Text == "1")
  137. {
  138. FormAddEditRequest Frm = new FormAddEditRequest();
  139. Frm.LblTitleRequest.Text = "Редактирование зайвки";
  140. Frm.BsRequest.Filter = $"IdRequest = {DgvRequest.CurrentRow.Cells[0].Value}";
  141. Frm.ShowDialog();
  142. }
  143. else if (LblIdRole.Text == "2")
  144. {
  145. FormEditMaster Frm = new FormEditMaster();
  146. Frm.BsRequest.Filter = $"IdRequest = {DgvRequest.CurrentRow.Cells[0].Value}";
  147. Frm.ShowDialog();
  148. }
  149. this.requestTableAdapter.Fill(this.techServiceBAUDataSet.Request);
  150. OutputRequest();
  151. }
  152. private void BtnInfo_Click(object sender, EventArgs e)
  153. {
  154. Forminfo Frm = new Forminfo();
  155. Frm.ShowDialog();
  156. }
  157. private void BtnProf_Click(object sender, EventArgs e)
  158. {
  159. FormProfil Frm = new FormProfil();
  160. Frm.BsMaster.Filter = BsEmployee.Filter;
  161. Frm.ShowDialog();
  162. this.employeeTableAdapter.Fill(this.techServiceBAUDataSet.Employee);
  163. OutputRequest();
  164. try
  165. {
  166. PbxPhoto.Image = Image.FromFile(Application.StartupPath + $"\\Photo\\{LblPhoto.Text}");
  167. }
  168. catch { }
  169. }
  170. }
  171. }