/// <summary> /// LayGia /// </summary> /// <param name="maHangHoa"></param> /// <param name="sl"></param> /// <param name="ngayLapHd"></param> /// <param name="source"></param> /// <returns></returns> public KhuyenMaiSoLuong LayGia(string maHangHoa, string sl, DateTime ngayLapHd, KhuyenMaiSoLuong[] source) { KhuyenMaiSoLuong retVal; try { KhuyenMaiSoLuong[] temp = frmXuLyHangHoa.GetSource(maHangHoa, source); temp = frmXuLyHangHoa.SapXep(temp); retVal = frmXuLyHangHoa.GetDonGia(maHangHoa, sl, ngayLapHd, temp); } catch { retVal = null; } return retVal; }
/// <summary> /// GetData /// </summary> /// <param name="maHangHoa"></param> /// <returns></returns> public Entities.KhuyenMaiSoLuong[] GetData(string maHangHoa) { Entities.KhuyenMaiSoLuong[] retVal = null; try { cl = new Server_Client.Client(); // gán TCPclient this.client1 = cl.Connect(Luu.IP, Luu.Ports); // khởi tạo biến truyền vào với hàm khởi tạo Entities.KhuyenMaiSoLuong item = new Entities.KhuyenMaiSoLuong(); // truyền HanhDong item = new Entities.KhuyenMaiSoLuong(); item.HanhDong = "Select"; item.MaHangHoa = maHangHoa.Trim().ToUpper(); // khởi tạo mảng đối tượng để hứng giá trị Entities.KhuyenMaiSoLuong[] item1 = new Entities.KhuyenMaiSoLuong[1]; clientstrem = cl.SerializeObj(this.client1, "KhuyenMaiSoLuong", item); // đổ mảng đối tượng vào datagripview item1 = (Entities.KhuyenMaiSoLuong[])cl.DeserializeHepper1(clientstrem, item1); // Gan gia tri retVal = item1; } catch { retVal = null; } return retVal; }
/// <summary> /// GetData /// </summary> /// <param name="maHangHoa"></param> /// <returns></returns> public KhuyenMaiSoLuong[] GetData() { KhuyenMaiSoLuong[] retVal = null; try { cl = new Server_Client.Client(); // gán TCPclient Client1 = cl.Connect(Luu.IP, Luu.Ports); // khởi tạo biến truyền vào với hàm khởi tạo // truyền HanhDong KhuyenMaiSoLuong item = new KhuyenMaiSoLuong { HanhDong = "SelectAll" }; // khởi tạo mảng đối tượng để hứng giá trị KhuyenMaiSoLuong[] item1 = new KhuyenMaiSoLuong[1]; Clientstrem = cl.SerializeObj(Client1, "KhuyenMaiSoLuong", item); // đổ mảng đối tượng vào datagripview item1 = (KhuyenMaiSoLuong[])cl.DeserializeHepper1(Clientstrem, item1); // Gan gia tri retVal = item1; } catch { retVal = null; } return retVal; }
/// <summary> /// SapXep /// </summary> /// <param name="source"></param> /// <returns></returns> public static KhuyenMaiSoLuong[] SapXep(KhuyenMaiSoLuong[] source) { KhuyenMaiSoLuong[] retVal; try { if (source == null) return null; retVal = source.OrderBy(c => c.SoLuong).ToArray(); } catch { retVal = null; } return retVal; }
/// <summary> /// GetSource /// </summary> /// <param name="maHangHoa"></param> /// <param name="source"></param> /// <returns></returns> public static KhuyenMaiSoLuong[] GetSource(string maHangHoa, KhuyenMaiSoLuong[] source) { KhuyenMaiSoLuong[] retVal; try { var query = from item in source where item.MaHangHoa.Trim().ToUpper().Equals(maHangHoa.Trim().ToUpper()) select item; retVal = query.ToArray(); } catch { retVal = null; } return retVal; }
/// <summary> /// GetDonGia /// </summary> /// <param name="?"></param> /// <param name="maHangHoa"> </param> /// <param name="sl"> </param> /// <param name="ngayLapHd"> </param> /// <param name="source"> </param> /// <returns></returns> public static KhuyenMaiSoLuong GetDonGia(string maHangHoa, string sl, DateTime ngayLapHd, KhuyenMaiSoLuong[] source) { KhuyenMaiSoLuong retVal = null; try { if (source == null) return null; int length = source.Length; KhuyenMaiSoLuong temp; // truong hop 1 (chi co 1 item trong source) if (length == 1) { var query = from item in source let a = item.MaHangHoa.Trim().ToUpper().Equals(maHangHoa.Trim().ToUpper()) let b = item.SoLuong <= double.Parse(sl) let c = (item.NgayBatDau.Date >= ngayLapHd.Date) && (item.NgayKetThuc.Date <= ngayLapHd.Date) where a && b && c select item; KhuyenMaiSoLuong[] tempArr = query.ToArray(); if (tempArr != null && tempArr.Length > 0) { retVal = tempArr[0]; return retVal; } } // Truong hop 2(sl hang hoa > ca max trong source) if (length > 1) { temp = source[length - 1]; bool a = temp.SoLuong <= double.Parse(sl); bool b = temp.MaHangHoa.Trim().ToUpper().Equals(maHangHoa.Trim().ToUpper()); bool c = (temp.NgayBatDau.Date >= ngayLapHd.Date) && (temp.NgayKetThuc.Date <= ngayLapHd.Date); if (a && b && c) return temp; } // Truong hop 3 temp = null; foreach (Entities.KhuyenMaiSoLuong item in source) { // so sanh so luong truoc if (double.Parse(sl) >= item.SoLuong) { temp = item; } else break; } if (temp != null) { bool b = temp.MaHangHoa.Trim().ToUpper().Equals(maHangHoa.Trim().ToUpper()); bool c = (temp.NgayBatDau.Date <= ngayLapHd.Date) && (temp.NgayKetThuc.Date >= ngayLapHd.Date); if (b && c) retVal = temp; } } catch { retVal = null; } return retVal; }
/// <summary> /// txtKMKT_KeyDown /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtGiaBanBuon_KeyDown(object sender, KeyEventArgs e) { try { if (e.KeyCode.Equals(Keys.Enter)) { // Validate if (!ValidateDataKM()) return; // lay data Entities.KhuyenMaiSoLuong item = new Entities.KhuyenMaiSoLuong(); item.MaHangHoa = txtMaHangHoa.Text.Trim().ToUpper(); item.TenHangHoa = txtTenHangHoa.Text; item.HanhDong = "Insert"; item.SoLuong = double.Parse(txtSoLuongKM.Text); double giaBanBuon = 0; if (!string.IsNullOrEmpty(txtKMGiaBanBuon.Text)) giaBanBuon = double.Parse(txtKMGiaBanBuon.Text); item.GiaBanBuon = giaBanBuon; item.GiaBanLe = double.Parse(txtKMGiaBanLe.Text); item.NgayBatDau = ConvertDatetime(txtKMBD.Text); item.NgayKetThuc = ConvertDatetime(txtKMKT.Text); // Check Trung, khong trung , trung 1 phan Entities.KhuyenMaiSoLuong[] source = (Entities.KhuyenMaiSoLuong[])grvKhuyenMaiSL.DataSource; string result = CheckKhoangTime(item, source); bool isValidate = true; if (!string.IsNullOrEmpty(result)) { switch (result) { //case "trung": // { // MessageBox.Show("Thời gian khuyến mại không được trùng nhau, vui lòng kiểm tra lại! ", "Hệ thống cảnh báo", MessageBoxButtons.OK); // isValidate = false; // break; // } case "trungmotphan": { MessageBox.Show("Số lượng khuyến mại không được giống nhau, vui lòng kiểm tra lại! ", "Hệ thống cảnh báo", MessageBoxButtons.OK); isValidate = false; break; } } } if (isValidate) { // add to list view this.AddToList(item); } // } } catch { } }
/// <summary> /// Update /// </summary> /// <param name="source"></param> /// <returns></returns> public bool Update(Entities.KhuyenMaiSoLuong[] source) { bool retVal = false; try { // Validate if (source == null || source.Length <= 0) { MessageBox.Show("Danh sách hàng khuyến mại không được để trống, Vui lòng kiểm tra lại", "Hệ thống cảnh báo", MessageBoxButtons.OK); return false; } //Nghiep vu int msg = 0; cl = new Server_Client.Client(); // gán TCPclient this.client1 = cl.Connect(Luu.IP, Luu.Ports); // khởi tạo biến truyền vào với hàm khởi tạo Entities.KhuyenMaiSoLuong item = new Entities.KhuyenMaiSoLuong(); // Delete item = source[0]; item.HanhDong = "Delete"; clientstrem = cl.SerializeObj(this.client1, "KhuyenMaiSoLuong", item); // đổ mảng đối tượng vào datagripview msg = (int)cl.DeserializeHepper(clientstrem, msg); // Insert foreach (Entities.KhuyenMaiSoLuong item1 in source) { item1.HanhDong = "Insert"; clientstrem = cl.SerializeObj(this.client1, "KhuyenMaiSoLuong", item1); // đổ mảng đối tượng vào datagripview msg = (int)cl.DeserializeHepper(clientstrem, msg); } if (msg != 0) retVal = true; } catch { retVal = false; } return retVal; }