/QuanLiThuVien/MuonSach.cs

https://gitlab.com/gitvani/quanlithuvien · C# · 331 lines · 278 code · 38 blank · 15 comment · 42 complexity · 54441400a55c43149c2fb659ae7ca8f4 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.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace QuanLiThuVien
  11. {
  12. public partial class MuonSach : Form
  13. {
  14. public MuonSach()
  15. {
  16. InitializeComponent();
  17. }
  18. private BindingSource docGiaBindingSource;
  19. private BindingSource sachBindingSource;
  20. private const int soSachMuonToDa = 3;
  21. private int soSachDuocMuon;
  22. private int soSachMuon;
  23. private void MuonSach_Load(object sender, EventArgs e)
  24. {
  25. // get data for maDocGiaComboBox
  26. docGiaBindingSource = Program.getBindingSource("exec DOCGIA_XEM");
  27. for (int i = 0; i < docGiaBindingSource.List.Count; i++)
  28. {
  29. DataRowView current = (DataRowView)docGiaBindingSource.List[i];
  30. maDocGiaComboBox.Items.Add(current["MADG"].ToString());
  31. }
  32. // Get maNhanVien
  33. maNhanVienTextBox.Text = Program.username;
  34. // khởi tạo ngày mượn là today
  35. ngayMuonDateTimePicker.Value = DateTime.Now;
  36. Console.WriteLine(ngayMuonDateTimePicker.Value);
  37. // get maSach
  38. loadMaSachComboBox();
  39. }
  40. private void loadMaSachComboBox()
  41. {
  42. sachBindingSource = Program.getBindingSource("exec SACHCHUAMUON");
  43. maSach1ComboBox.Items.Clear();
  44. maSach2ComboBox.Items.Clear();
  45. maSach3ComboBox.Items.Clear();
  46. for (int i = 0; i < sachBindingSource.List.Count; i++)
  47. {
  48. DataRowView current = (DataRowView)sachBindingSource.List[i];
  49. maSach1ComboBox.Items.Add(current["MASACH"].ToString());
  50. maSach2ComboBox.Items.Add(current["MASACH"].ToString());
  51. maSach3ComboBox.Items.Add(current["MASACH"].ToString());
  52. }
  53. }
  54. private void setDataForDataGridView()
  55. {
  56. BindingSource lichSuMuonSachBindingSource = Program.getBindingSource("exec LICHSUMUONSACH " + maDocGiaComboBox.Text);
  57. myDataGridView.DataSource = lichSuMuonSachBindingSource.DataSource;
  58. }
  59. private void maDocComboBox_SelectedIndexChanged(object sender, EventArgs e)
  60. {
  61. // lay thong tin lich su muon sach
  62. if (maDocGiaComboBox.SelectedIndex < 0)
  63. {
  64. return;
  65. }
  66. setDataForDataGridView();
  67. /////////////////////
  68. DataRowView currentRow = (DataRowView)docGiaBindingSource.List[maDocGiaComboBox.SelectedIndex];
  69. tenDocGiaTextBox.Text = currentRow["TENDG"].ToString();
  70. // tính số sách còn có thể mượn
  71. BindingSource soSachChuaTraBindingSource = Program.getBindingSource("exec SOSACHCHUATRA " +maDocGiaComboBox.Text);
  72. DataRowView current = (DataRowView)soSachChuaTraBindingSource.List[0];
  73. int soSachChuaTra = Int32.Parse(current["SOSACHCHUATRA"].ToString());
  74. soSachDuocMuon = soSachMuonToDa - soSachChuaTra ;
  75. if (soSachDuocMuon < 0)
  76. {
  77. soSachDuocMuon = 0;
  78. }
  79. SoSachDuocMuonTextBox.Text = soSachDuocMuon.ToString();
  80. }
  81. private void SoSachDuocMuonTextBox_TextChanged(object sender, EventArgs e)
  82. {
  83. maSach1ComboBox.Enabled = false;
  84. maSach2ComboBox.Enabled = false;
  85. maSach3ComboBox.Enabled = false;
  86. tinhTrangSach1ComboBox.Enabled = false;
  87. tinhTrangSach2ComboBox.Enabled = false;
  88. tinhTrangSach3ComboBox.Enabled = false;
  89. hinhThucComboBox.Enabled = false;
  90. saveButton.Enabled = false;
  91. soSachMuonComboBox.Enabled = false;
  92. if (soSachDuocMuon >= 1)
  93. {
  94. soSachMuonComboBox.Enabled = true;
  95. }
  96. soSachMuonComboBox.Items.Clear();
  97. for (int i = 1; i <= soSachDuocMuon; i++)
  98. {
  99. soSachMuonComboBox.Items.Add(i);
  100. }
  101. }
  102. private void capNhatSach()
  103. {
  104. if (soSachMuon >= 1)
  105. {
  106. Program.editData("exec SACH_CAPNHATCHOMUON '" + maSach1ComboBox.Text + "', " + 1);
  107. Console.WriteLine("exec SACH_CAPNHATCHOMUON '" + maSach1ComboBox.Text + "', " + 1);
  108. }
  109. if (soSachMuon >= 2)
  110. {
  111. Program.editData("exec SACH_CAPNHATCHOMUON '" + maSach2ComboBox.Text + "', " + 1);
  112. }
  113. if (soSachMuon >= 3)
  114. {
  115. Program.editData("exec SACH_CAPNHATCHOMUON '" + maSach3ComboBox.Text + "', " + 1);
  116. }
  117. }
  118. private void saveButton_Click(object sender, EventArgs e)
  119. {
  120. if (!checkEmptyValue())
  121. {
  122. return;
  123. }
  124. String maDG = maDocGiaComboBox.Text;
  125. String hinhThuc = hinhThucComboBox.SelectedIndex.ToString();
  126. String ngayMuon = ngayMuonDateTimePicker.Value.ToString("yyyy-MM-dd HH:mm:ss");
  127. String maNV = maNhanVienTextBox.Text;
  128. String maSach1 = maSach1ComboBox.Text;
  129. String maSach2 = maSach2ComboBox.Text ;
  130. String maSach3 = maSach3ComboBox.Text;
  131. String tinhTrangMuon1 = (tinhTrangSach1ComboBox.SelectedIndex == -1) ? "" : tinhTrangSach1ComboBox.SelectedIndex.ToString();
  132. String tinhTrangMuon2 = (tinhTrangSach2ComboBox.SelectedIndex == -1) ? "" : tinhTrangSach2ComboBox.SelectedIndex.ToString();
  133. String tinhTrangMuon3 = (tinhTrangSach3ComboBox.SelectedIndex == -1) ? "" : tinhTrangSach3ComboBox.SelectedIndex.ToString();
  134. String sql = "exec MUONSACH "
  135. + " '" + maDG + "', "
  136. + " '" + hinhThuc + "', "
  137. + " '" + ngayMuon + "', "
  138. + " '" + maNV + "', "
  139. + " '" + maSach1 + "', "
  140. + " '" + maSach2 + "', "
  141. + " '" + maSach3 + "', "
  142. + " '" + tinhTrangMuon1 + "', "
  143. + " '" + tinhTrangMuon2 + "', "
  144. + " '" + tinhTrangMuon3 + "', "
  145. + " '" + soSachMuon + "' ";
  146. Console.WriteLine(sql);
  147. try
  148. {
  149. Program.editData(sql);
  150. // cập nhật gridview
  151. setDataForDataGridView();
  152. // cập nhật lại trình trạng sách CHOMUON = 1
  153. capNhatSach();
  154. loadMaSachComboBox();
  155. // reset
  156. resetControllerData();
  157. }
  158. catch (Exception ex){
  159. MessageBox.Show("Lỗi: " + ex.Message, "Lỗi", MessageBoxButtons.OK);
  160. }
  161. }
  162. private void resetControllerData() {
  163. maDocGiaComboBox.Text = "";
  164. soSachMuonComboBox.Text = "";
  165. maSach1ComboBox.Text = "";
  166. maSach2ComboBox.Text = "";
  167. maSach3ComboBox.Text = "";
  168. tinhTrangSach1ComboBox.Text = "";
  169. tinhTrangSach2ComboBox.Text = "";
  170. tinhTrangSach3ComboBox.Text = "";
  171. hinhThucComboBox.Text = "";
  172. soSachMuonComboBox.Enabled = false;
  173. hinhThucComboBox.Enabled = false;
  174. maSach1ComboBox.Enabled = false;
  175. maSach2ComboBox.Enabled = false;
  176. maSach3ComboBox.Enabled = false;
  177. tinhTrangSach1ComboBox.Enabled = false;
  178. tinhTrangSach2ComboBox.Enabled = false;
  179. tinhTrangSach3ComboBox.Enabled = false;
  180. saveButton.Enabled = false;
  181. }
  182. private Boolean checkEmptyValue()
  183. {
  184. if (maDocGiaComboBox.Text == String.Empty)
  185. {
  186. MessageBox.Show("Mã độc giả không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  187. return false;
  188. }
  189. if (hinhThucComboBox.Text == String.Empty)
  190. {
  191. MessageBox.Show("Hình thức không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  192. return false;
  193. }
  194. if (ngayMuonDateTimePicker.Value.ToString() == String.Empty)
  195. {
  196. MessageBox.Show("Ngày mượn không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  197. return false;
  198. }
  199. //if (ngayMuonDateTimePicker.Value.CompareTo(DateTime.Today)> 0)
  200. //{
  201. // MessageBox.Show("Ngày mượn không thể trể hơn hôm nay " + DateTime.Today.ToString(), "Lỗi nhập liệu", MessageBoxButtons.OK);
  202. // return;
  203. //}
  204. if (soSachMuon >= 1)
  205. {
  206. if (maSach1ComboBox.Text == String.Empty)
  207. {
  208. MessageBox.Show("Mã sách 1 không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  209. return false;
  210. }
  211. if (tinhTrangSach1ComboBox.Text == String.Empty)
  212. {
  213. MessageBox.Show("Tình trạng sách 1 không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  214. return false;
  215. }
  216. }
  217. if (soSachMuon >= 2)
  218. {
  219. if (maSach2ComboBox.Text == String.Empty)
  220. {
  221. MessageBox.Show("Mã sách 2 không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  222. return false;
  223. }
  224. if (tinhTrangSach2ComboBox.Text == String.Empty)
  225. {
  226. MessageBox.Show("Tình trạng sách 2 không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  227. return false;
  228. }
  229. if (maSach1ComboBox.Text.Equals(maSach2ComboBox.Text))
  230. {
  231. MessageBox.Show("Các mã sách 1 và 2 trùng nhau", "Lỗi nhập liệu", MessageBoxButtons.OK);
  232. return false;
  233. }
  234. }
  235. if (soSachMuon >= 3)
  236. {
  237. if (maSach3ComboBox.Text == String.Empty)
  238. {
  239. MessageBox.Show("Mã sách 3 không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  240. return false;
  241. }
  242. if (tinhTrangSach3ComboBox.Text == String.Empty)
  243. {
  244. MessageBox.Show("Tình trạng sách 3 không thể thiếu", "Lỗi nhập liệu", MessageBoxButtons.OK);
  245. return false;
  246. }
  247. if (maSach2ComboBox.Text.Equals(maSach3ComboBox.Text))
  248. {
  249. MessageBox.Show("Các mã sách 2 và 3 trùng nhau", "Lỗi nhập liệu", MessageBoxButtons.OK);
  250. return false;
  251. }
  252. else if (maSach1ComboBox.Text.Equals(maSach3ComboBox.Text))
  253. {
  254. MessageBox.Show("Các mã sách 1 và 3 trùng nhau", "Lỗi nhập liệu", MessageBoxButtons.OK);
  255. return false;
  256. }
  257. }
  258. return true;
  259. }
  260. private void soSachMuonComboBox_SelectedIndexChanged(object sender, EventArgs e)
  261. {
  262. if (soSachMuonComboBox.SelectedIndex < 0)
  263. {
  264. return;
  265. }
  266. soSachMuon = Int32.Parse(soSachMuonComboBox.Text);
  267. maSach1ComboBox.Enabled = false;
  268. maSach2ComboBox.Enabled = false;
  269. maSach3ComboBox.Enabled = false;
  270. tinhTrangSach1ComboBox.Enabled = false;
  271. tinhTrangSach2ComboBox.Enabled = false;
  272. tinhTrangSach3ComboBox.Enabled = false;
  273. saveButton.Enabled = false;
  274. if (soSachMuon >= 1)
  275. {
  276. maSach1ComboBox.Enabled = true;
  277. tinhTrangSach1ComboBox.Enabled = true;
  278. saveButton.Enabled = true;
  279. hinhThucComboBox.Enabled = true;
  280. }
  281. if (soSachMuon >= 2)
  282. {
  283. maSach2ComboBox.Enabled = true;
  284. tinhTrangSach2ComboBox.Enabled = true;
  285. }
  286. if (soSachMuon >= 3)
  287. {
  288. maSach3ComboBox.Enabled = true;
  289. tinhTrangSach3ComboBox.Enabled = true;
  290. }
  291. }
  292. }
  293. }