private void frmPhieuXuat_ChiTiet_Load(object sender, EventArgs e) { m_dtTmp = new DataTable("tableTmp"); m_dtTmp.Columns.Add("ID_VatTu", typeof(int)); m_dtTmp.Columns.Add("ID_TheKho", typeof(int)); m_dtTmp.Columns.Add("SoLuong", typeof(int)); if (GlobalVariables.m_Flag == 0) { // số phiếu xuất clsPhieuXuat cls = new clsPhieuXuat(); cls.SelectLast_IDPX(); txtSoPhieuXuat.Text = "PX-" + DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + "-" + cls.ID_PhieuXuat; LoadKho(); dtpNgayHachToan.Value = DateTime.Now; dtpNgayXuatKho.Value = DateTime.Now; } else { LoadKho(); LoadDetail(); LoadfgChiTietPhieuXuatWTSua(m_iID_Kho, m_iID_PX); if (m_iTrangThai == (int)GlobalVariables.TrangThai.GhiTheKho || m_iTrangThai == (int)GlobalVariables.TrangThai.PheDuyet || m_iTrangThai == (int)GlobalVariables.TrangThai.TrinhDuyet) { LockEdit(false); } else { cboKhoXuat.Enabled = false; } } }
private void LoadfgChiTietPhieuXuatWTSua(int iID_Kho, int iID_PhieuXuat) { fgChiTietXuat.BeginUpdate(); clsPhieuXuat cls = new clsPhieuXuat(); //txtSoPhieuXuat.Text = cls.So_PhieuXuat.ToString(); cls.ID_Kho = iID_Kho; cls.ID_PhieuXuat = iID_PhieuXuat; DataTable dt = cls.SelectPX_SoLuong(); int iSTT = 1; int sum = 0; int SLXuat = 0; fgChiTietXuat.Rows.Count = fgChiTietXuat.Rows.Fixed + 1; fgChiTietXuat[fgChiTietXuat.Rows.Count - 1, "Ten_VatTu"] = "Tổng"; fgChiTietXuat[fgChiTietXuat.Rows.Count - 1, "SoLuongXuat"] = 0; fgChiTietXuat.Rows[fgChiTietXuat.Rows.Count - 1].Style = cs; foreach (DataRow dr in dt.Rows) { Row fgRow = fgChiTietXuat.Rows.Add(); fgRow["STT"] = iSTT; iSTT++; fgRow["ID_VatTu"] = dr["ID_VatTu"]; fgRow["Ten_VatTu"] = dr["Ten_VatTu"]; fgRow["SoLuongHienTai"] = dr["SoLuongHienTai"]; if ((fgRow["SoLuongXuat"] ?? "").ToString() == "") { fgRow["SoLuongXuat"] = 0; } fgRow["SoLuongXuat"] = dr["SoLuong"]; fgChiTietXuat.SetCellStyle(iSTT, 4, cs1); sum += int.Parse(dr["SoLuongHienTai"].ToString()); } for (int i = fgChiTietXuat.Rows.Fixed + 1; i < fgChiTietXuat.Rows.Count; i++) { if (fgChiTietXuat[i, "SoLuongXuat"] != null) { SLXuat += int.Parse(fgChiTietXuat[i, "SoLuongXuat"].ToString()); } } fgChiTietXuat[fgChiTietXuat.Rows.Fixed, "SoLuongHienTai"] = sum; fgChiTietXuat[fgChiTietXuat.Rows.Fixed, "SoLuongXuat"] = SLXuat; fgChiTietXuat.EndUpdate(); }
private void btnLuu_Click(object sender, EventArgs e) { clsPhieuXuat cls = new clsPhieuXuat(); cls.ID_Kho = int.Parse(cboKhoXuat.EditValue.ToString()); cls.Ngay_HachToan = (DateTime)dtpNgayHachToan.Value; cls.So_PhieuXuat = txtSoPhieuXuat.Text; cls.Ngay_XuatKho = (DateTime)dtpNgayXuatKho.Value; cls.Ngay_Lap = GlobalVariables.NgayLV; cls.Ngay_PheDuyet = GlobalVariables.NgayLV; cls.Nguoi_Lap = "ABC"; cls.Nguoi_PheDuyet = ""; cls.TrangThai = 0; cls.TonTai = true; if (IsValidPhieuXuat()) { try { if (GlobalVariables.m_Flag == 0) { cls.Insert(); SavePhieuChiTiet(int.Parse(cls.ID_PhieuXuat.ToString())); SavePhieuChiTiet_TheKho(int.Parse(cls.ID_PhieuXuat.ToString())); } else { cls.Update(); SavePhieuChiTiet(m_iID_PX); SavePhieuChiTiet_TheKho(m_iID_PX); } BaseMessages.ShowInformationMessage("Cập nhật thành công."); m_dtTmp.Dispose(); this.Close(); GlobalVariables.m_Flag = 100; } catch (Exception ex) { BaseMessages.ShowErrorMessage(ex.ToString()); } } }
private bool IsValidPhieuXuat() { if ((txtSoPhieuXuat.Text ?? "") == "" || cboKhoXuat.EditValue == null || dtpNgayHachToan.Text == "" || dtpNgayXuatKho.Text == "") { BaseMessages.ShowInformationMessage("Vui lòng nhập đầy đủ thông tin."); return(false); } else { clsPhieuXuat cls = new clsPhieuXuat(); DataTable dt = cls.SelectAll(); foreach (DataRow dr in dt.Rows) { if (txtSoPhieuXuat.Text.Trim() == dr["So_PhieuXuat"].ToString().Trim()) { if (GlobalVariables.m_Flag != 0) { continue; } BaseMessages.ShowErrorMessage("Trùng số phiếu. Vui lòng nhập lại."); return(false); } } if (fgChiTietTheKho.Row < 0 && GlobalVariables.m_Flag == 0) { BaseMessages.ShowInformationMessage("Vui lòng chọn vật tư."); return(false); } if (!IsValidPhieuXuatTheKho()) { BaseMessages.ShowInformationMessage("Vui lòng nhập số lượng vật tư và số vật tư xuất phải bé hơn vật tư có trong kho."); return(false); } } return(true); }