public RangBuocTonKho(PLGridView DesGrid, DataSet DetailDataSet, DataSet GridDataSetSrc, PhieuType Des, long Kho_Id, bool? IsAdd) { this.DesGrid = DesGrid; if (DetailDataSet != null && DetailDataSet.Tables.Count > 0) { if (IsAdd == true) this.DetailDataTable = DetailDataSet.Tables[0]; else { foreach (DataRow rowLast in DetailDataSet.Tables[0].Rows) { foreach (DataRow rowFirst in GridDataSetSrc.Tables[0].Rows) { if (rowLast.RowState != DataRowState.Deleted) { if ((HelpNumber.ParseInt64(rowLast["HH_ID"]) == HelpNumber.ParseInt64(rowFirst["HH_ID"])) && (HelpNumber.ParseInt64(rowLast[Des.GetSTTField()]) == HelpNumber.ParseInt64(rowFirst[Des.GetSTTField()]))) { rowLast[Des.GetSOLGField()] = HelpNumber.ParseDecimal(rowLast[Des.GetSOLGField()]) - HelpNumber.ParseDecimal(rowFirst[Des.GetSOLGField()]); rowLast[Des.GetTRLGField()] = HelpNumber.ParseDecimal(rowLast[Des.GetTRLGField()]) - HelpNumber.ParseDecimal(rowFirst[Des.GetTRLGField()]); } } } } this.DetailDataTable = DetailDataSet.Tables[0]; } } this.Des = Des; this.Kho_Id = Kho_Id; }
public RangBuocDeletePhieuTonKho(DataSet DetailDataSet, DataSet GridDataSetSrc, PhieuType Des, long Kho_Id, DateTime? Ngay_Nhap) { if (DetailDataSet != null && DetailDataSet.Tables.Count > 0) { foreach (DataRow rowLast in DetailDataSet.Tables[0].Rows) { if (rowLast.RowState != DataRowState.Deleted) { foreach (DataRow rowFirst in GridDataSetSrc.Tables[0].Rows) { if (rowLast.RowState == DataRowState.Added) { rowLast[Des.GetSOLGField()] = 0; rowLast[Des.GetTRLGField()] = 0; } else { if ((HelpNumber.ParseInt64(rowLast["HH_ID"]) == HelpNumber.ParseInt64(rowFirst["HH_ID"])) && (HelpNumber.ParseInt64(rowLast[Des.GetSTTField()]) == HelpNumber.ParseInt64(rowFirst[Des.GetSTTField()]))) { rowLast[Des.GetSOLGField()] = HelpNumber.ParseDecimal(rowLast[Des.GetSOLGField()]) - HelpNumber.ParseDecimal(rowFirst[Des.GetSOLGField()]); if (HelpNumber.ParseDecimal(rowLast[Des.GetSOLGField()]) > 0) rowLast[Des.GetSOLGField()] = 0; else { rowLast[Des.GetSOLGField()] = (-1) * HelpNumber.ParseDecimal(rowLast[Des.GetSOLGField()]); } rowLast[Des.GetTRLGField()] = HelpNumber.ParseDecimal(rowLast[Des.GetTRLGField()]) - HelpNumber.ParseDecimal(rowFirst[Des.GetTRLGField()]); if (HelpNumber.ParseDecimal(rowLast[Des.GetTRLGField()]) > 0) rowLast[Des.GetTRLGField()] = 0; else { rowLast[Des.GetTRLGField()] = (-1) * HelpNumber.ParseDecimal(rowLast[Des.GetTRLGField()]); } } } } } } List<DataRow> row_deleted = new List<DataRow>(); foreach (DataRow rowFirst in GridDataSetSrc.Tables[0].Rows) { bool IsRowDeleted = false; foreach (DataRow rowLast in DetailDataSet.Tables[0].Rows) { if (rowLast.RowState != DataRowState.Deleted && (HelpNumber.ParseInt64(rowLast["HH_ID"]) == HelpNumber.ParseInt64(rowFirst["HH_ID"])) && (HelpNumber.ParseInt64(rowLast[Des.GetSTTField()]) == HelpNumber.ParseInt64(rowFirst[Des.GetSTTField()]))) IsRowDeleted = true; } if (!IsRowDeleted) row_deleted.Add(rowFirst); } foreach (DataRow row in row_deleted) DetailDataSet.Tables[0].ImportRow(row); this.DetailDataTable = DetailDataSet.Tables[0]; } this.Des = Des; this.Ngay_phat_sinh = Ngay_Nhap; this.Kho_Id = Kho_Id; }
public DataTable GetConLai(PhieuType Des) { foreach (DataRow dr in ConLai.Rows) { if (HelpNumber.ParseDecimal(dr["SO_LUONG"]) <= 0 || HelpNumber.ParseDecimal(dr["TRONG_LUONG"]) <= 0) { dr.Delete(); } } if(RangBuocSoLgTrLgHelp.CheckColumnsExist(ConLai, "TINH_TRANG")) ConLai.Columns["TINH_TRANG"].ColumnName = Des.GetSTTField(); return ConLai; }
/// <summary> /// Thể hiện lỗi trên Grid dựa vào DataTable chứa các dòng lỗi /// </summary> /// <param name="gridDich">Grid cần thể hiện lỗi</param> /// <param name="dt_error">DataTable các dòng lỗi</param> public static void ShowErrorOnGridExt(PLGridView gridDich, DataTable dt_error, PhieuType Des) { RangBuocSoLgTrLgHelp.AddFormatCond(gridDich); for (int i = 0; i < gridDich.RowCount; i++) { gridDich.SetRowCellValue(i, gridDich.Columns["CHECK"], 1); gridDich.SetRowCellValue(i, gridDich.Columns["VI_PHAM"], ""); foreach (DataRow dr_error in dt_error.Rows) { DataRow rowDich = gridDich.GetDataRow(i); if ((HelpNumber.ParseInt64(rowDich["HH_ID"]) == HelpNumber.ParseInt64(dr_error["HH_ID"])) && (HelpNumber.ParseInt64(rowDich[Des.GetSTTField()]) == HelpNumber.ParseInt64(dr_error["TINH_TRANG"]))) { gridDich.SetRowCellValue(i, gridDich.Columns["CHECK"], 0); gridDich.SetRowCellValue(i, gridDich.Columns["VI_PHAM"], dr_error["VI_PHAM"]); gridDich.UpdateCurrentRow(); gridDich.OptionsView.ShowPreview = true; gridDich.OptionsView.AutoCalcPreviewLineCount = true; gridDich.PreviewFieldName = "VI_PHAM"; gridDich.CustomDrawRowPreview += new DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventHandler( RangBuocSoLgTrLgHelp.gridDich_CustomDrawRowPreview); } } } }
/// <summary> /// Tạo DataTable(HH_ID, SO_LUONG, TRONG_LUONG, TINH_TRANG) lưu trữ hàng hóa, /// số lượng, trọng lượng và tình trạng /// Thuộc 1 phiếu bất kì có loại phiếu và ID /// </summary> /// <param name="type">Loại phiếu</param> /// <param name="id">ID</param> /// <returns>DataSet chứa DataTable(HH_ID, SO_LUONG, TRONG_LUONG, TINH_TRANG)</returns> public static DataSet GetData_Standard(PhieuType type, long id) { try { QueryBuilder filter = new QueryBuilder("select hh_id as \"HH_ID\"," + type.GetSOLGField() + " as \"SO_LUONG\"," + type.GetTRLGField() + " as \"TRONG_LUONG\"," + type.GetSTTField() + " as \"TINH_TRANG\" from " + type.GetTableName() + "_CT" + " where 1=1"); filter.addID(type.GetIDField(), id); return DABase.getDatabase().LoadDataSet(filter); } catch (Exception ex) { PLException.AddException(ex); return null; } }
/// <summary> /// Cập nhật lại tên cột tình trạng cho phù hợp với mục đích sử dụng /// </summary> /// <param name="table">DataTable cần cập nhật lại tên cột tình trạng</param> /// <param name="Des">Loại phiếu đích</param> /// <returns></returns> public static bool DieuChinhTenCot(DataTable table, PhieuType Des) { if (!RangBuocSoLgTrLgHelp.CheckColumnsExist(table, Des.GetSTTField(), Des.GetSOLGField(), Des.GetTRLGField())) { return false; } foreach (DataColumn dc in table.Columns) { if (dc.ColumnName == Des.GetSTTField()) dc.ColumnName = "TINH_TRANG"; else if (dc.ColumnName == Des.GetSOLGField()) dc.ColumnName = "SO_LUONG"; else if (dc.ColumnName == Des.GetTRLGField()) dc.ColumnName = "TRONG_LUONG"; } return true; }