Exemple #1
0
 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;
        }