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;
        }
 /// <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;
        }