Пример #1
0
        public bool DeleteDetail(PLTransaction plTrans, DOFWObjRelData Data,long ky_id)
        {
            if (Data == null) return true;

            DatabaseFB db = plTrans.db;
            DbTransaction dbTrans = plTrans.dbTrans;
            try
            {
                if (!KhoTonKhoHelp.Check_PLQ(plTrans,ky_id,
                    Data.DES_ID, Data.DES_TYPE))
                {
                    string sql = "delete from kho_ton_kho_" +
                          ky_id +
                            " where des_id=@des_id and des_type=@des_type and hh_id=@hh_id and tinh_trang_hh=@tinh_trang_hh";
                    DbCommand cmd_Delete = db.GetSQLStringCommand(sql);
                    db.AddInParameter(cmd_Delete, "@des_id", DbType.Int64, Data.DES_ID);
                    db.AddInParameter(cmd_Delete, "@des_type", DbType.Int64, Data.DES_TYPE);
                    db.AddInParameter(cmd_Delete, "@hh_id", DbType.Int64, Data.HH_ID);
                    db.AddInParameter(cmd_Delete, "@tinh_trang_hh", DbType.Int64, Data.TINH_TRANG_HH);

                    db.ExecuteNonQuery(cmd_Delete, dbTrans);
                    //Cập nhật tồn kho từ kỳ hiện tại trở về sau
                    KhoTonKhoHelp.CapNhatNhapXuatChuyen(plTrans, Data, 3,ky_id);
                }
            }
            catch
            {
                return false;
            }
            return true;
        }
Пример #2
0
        public bool Update(DatabaseFB db, DbTransaction dbTrans, DOPhieuX DOX)
        {
            //Dữ liệu cần cập nhật vào KHO TON KHO từ KhoTonKho
            Object obj = DOX.GetAttr(KhoPhieuLienQuan.AttrName);
            PLTransaction plTrans = new PLTransaction(db, dbTrans);

            if (obj != null)
            {
                DOPhieuLienQuan PLQ = (DOPhieuLienQuan)obj;

                DOObjRel1N Obj1N = PLQ.Obj1N;
                if (Obj1N != null)
                {
                    //Danh sách tạo từ chương trình
                    List<DOFWObjRelData> listObjRel = KhoTonKhoHelp.GetData(
                        plTrans, Obj1N.OBJ_SRC_TYPE, Obj1N.OBJ_SRC_ID, DOX);
                    return UpdateX(plTrans, listObjRel, DOX);
                }
            }
            else
            {
                //Danh sách tạo từ chương trình
                List<DOFWObjRelData> listObjRel = KhoTonKhoHelp.GetData(
                    plTrans, 0, 0, DOX);
                return UpdateX(plTrans, listObjRel, DOX);
            }
            return true;
        }
Пример #3
0
        public bool Delete(DatabaseFB db, DbTransaction dbTrans, DOPhieuX DOX)
        {
            ITonKho data = (ITonKho)DOX;
            long ky_id = KhoTonKhoHelp.GetKy(new PLTransaction(db, dbTrans), data.GetNgayPhatSinh());
            PLTransaction plTrans = new PLTransaction(db, dbTrans);
            //Danh sách tạo từ chương trình
            List<DOFWObjRelData> listObjRel = KhoTonKhoHelp.GetData(plTrans, 0, 0, DOX);

            //Cập nhật tồn kho từ kỳ hiện tại trở về sau
            foreach (DOFWObjRelData ObjRel in listObjRel)
                KhoTonKhoHelp.CapNhatNhapXuatChuyen(plTrans, ObjRel, 3,ky_id);

            //Xóa phiếu phát sinh
            return DAFWObjRelData.I.Delete(new PLTransaction(db, dbTrans),
                ky_id, DOX.GetID(), DOX.GetPhieuType().GetTypeID());
        }
Пример #4
0
        /// <summary>
        /// Cập nhật chuyển kho hàng tồn kho khi xóa phiếu chuyển kho
        /// hay khi loại bỏ 1 số hàng hóa ra khỏi 1 phiếu chuyển kho nào đó
        /// </summary>
        /// <param name="plTrans">Đối tượng Transaction</param>
        /// <param name="ngay_phat_sinh">Ngày phát sinh phiếu</param>        
        /// <param name="hh_id">ID hàng hóa</param>       
        /// <param name="tinh_trang_hh">ID tình trạng</param>
        /// <param name="so_luong">Số lượng</param>
        /// <param name="trong_luong">Trọng lượng</param>
        /// <param name="kho_id1">ID kho 1</param>
        /// <param name="kho_id2">ID kho 2</param>
        /// <param name="IUD">Insert/Update/Delete(1/2/3)</param>
        public static void CapNhatChuyenKhoHangTon(PLTransaction plTrans, long ky_id,
            long hh_id, long tinh_trang_hh, decimal so_luong, decimal trong_luong, long kho_id1, long kho_id2, int IUD)
        {
            //DatabaseFB db = plTrans.db;

            //DbCommand cmd1 = db.GetStoredProcCommand("FW_KY_GET_KY_KD");
            //db.AddInParameter(cmd1, "@I_NGAY", DbType.DateTime, ngay_phat_sinh);
            //DataSet ds = new DataSet();
            //plTrans.LoadDataSet(ds, cmd1, "NOOP");
            //DataTable dt = ds.Tables[0];
            //long KyID = HelpNumber.ParseInt64(dt.Rows[0][0]);

            //Cập nhật giảm xuất Kho nguồn
            CapNhatTonKho(plTrans, ky_id, false, hh_id, kho_id1, tinh_trang_hh, so_luong, trong_luong, IUD);
            //Cập nhật giảm nhập Kho đích
            CapNhatTonKho(plTrans, ky_id, true, hh_id, kho_id2, tinh_trang_hh, so_luong, trong_luong, IUD);
        }
Пример #5
0
 /// <summary>
 /// Cập nhật hàng tồn kho khi Insert/Update/Delete phiếu Nhập/Xuất/Chuyển        
 /// </summary>
 /// <param name="plTrans">Đối tượng Transaction</param>       
 /// <param name="Data">Đối tượng DOFWObjRelData</param>
 /// <param name="IUD">Insert/Update/Delete(1/2/3)</param>
 public static void CapNhatNhapXuatChuyen(PLTransaction plTrans, DOFWObjRelData Data, int IUD,long ky_id)
 {
     if (Data.INOUT1 == "IN" && Data.INOUT2 == "")
     {
         KhoTonKhoHelp.CapNhatNhapXuatHangTon(plTrans,ky_id,
             true, Data.HH_ID, Data.KHO_ID1, Data.TINH_TRANG_HH, Data.SO_LG, Data.TONG_TR_LG, IUD);
         if (IUD != 3)
         {
             KhoTonKhoHelp.UpdateGhiChu(plTrans, ky_id,
                 Data.HH_ID, Data.KHO_ID1, Data.TINH_TRANG_HH, Data.GHI_CHU);
         }
     }
     else if (Data.INOUT1 == "OUT" && Data.INOUT2 == "")
     {
         KhoTonKhoHelp.CapNhatNhapXuatHangTon(plTrans, ky_id,
             false, Data.HH_ID, Data.KHO_ID1, Data.TINH_TRANG_HH, Data.SO_LG, Data.TONG_TR_LG, IUD);
     }
     else
     {
         KhoTonKhoHelp.CapNhatChuyenKhoHangTon(plTrans, ky_id,
             Data.HH_ID, Data.TINH_TRANG_HH, Data.SO_LG, Data.TONG_TR_LG, Data.KHO_ID1, Data.KHO_ID2, IUD);
     }
 }
Пример #6
0
        public bool Delete(PLTransaction plTrans, long ky_id, long des_id, long des_type)
        {
            DatabaseFB db = plTrans.db;
            DbTransaction dbTrans = plTrans.dbTrans;
            try
            {
                if (!KhoTonKhoHelp.Check_PLQ(plTrans,ky_id, des_id, des_type))
                {
                    string sql = "delete from kho_ton_kho_" +
                        ky_id +
                            " where des_id=@des_id and des_type=@des_type";
                    DbCommand cmd_Delete = db.GetSQLStringCommand(sql);
                    db.AddInParameter(cmd_Delete, "@des_id", DbType.Int64, des_id);
                    db.AddInParameter(cmd_Delete, "@des_type", DbType.Int64, des_type);

                    db.ExecuteNonQuery(cmd_Delete, dbTrans);
                }
            }
            catch
            {
                return false;
            }
            return true;
        }
Пример #7
0
        public bool Update(PLTransaction plTrans, DOFWObjRelData Data, bool IsUpdate,long ky_id)
        {
            if (Data == null) return true;
            DatabaseFB db = plTrans.db;
            DbTransaction dbTrans = plTrans.dbTrans;
            try
            {
                if (IsUpdate)
                {
                    string sql = "update kho_ton_kho_" +
                        ky_id +
                        " set src_id=@src_id" +
                        ",src_type=@src_type" +
                        ",so_lg=@so_luong" +
                        ",tong_tr_lg=@tong_trong_luong" +
                        ",nguoi_cap_nhat=@nguoi_cap_nhat" +
                        ",ngay_cap_nhat=@ngay_cap_nhat" +
                        ",nguoi_phat_sinh=@nguoi_phat_sinh" +
                        ",ngay_phat_sinh=@ngay_phat_sinh" +
                        ",kho_id1=@kho_id1" +
                        ",kho_id2=@kho_id2" +
                        ",don_vi_tinh=@don_vi_tinh" +
                        ",gia=@gia" +
                        ",tinh_trang_hh=@tinh_trang_hh" +
                        " where des_id=@des_id" +
                        " and des_type=@des_type" +
                        " and hh_id=@hh_id" +
                        " and tinh_trang_hh=@tinh_trang_hh";

                    DbCommand cmd_Update = db.GetSQLStringCommand(sql);
                    db.AddInParameter(cmd_Update, "@src_id", DbType.Int64, Data.SRC_ID);
                    db.AddInParameter(cmd_Update, "@src_type", DbType.Int32, Data.SRC_TYPE);
                    db.AddInParameter(cmd_Update, "@des_id", DbType.Int64, Data.DES_ID);
                    db.AddInParameter(cmd_Update, "@des_type", DbType.Int32, Data.DES_TYPE);
                    db.AddInParameter(cmd_Update, "@hh_id", DbType.Int64, Data.HH_ID);
                    db.AddInParameter(cmd_Update, "@so_luong", DbType.Decimal, Data.SO_LG);
                    db.AddInParameter(cmd_Update, "@tong_trong_luong", DbType.Decimal, Data.TONG_TR_LG);
                    db.AddInParameter(cmd_Update, "@nguoi_cap_nhat", DbType.Int64, Data.NGUOI_CAP_NHAT);
                    db.AddInParameter(cmd_Update, "@ngay_cap_nhat", DbType.DateTime, Data.NGAY_CAP_NHAT);
                    db.AddInParameter(cmd_Update, "@nguoi_phat_sinh", DbType.Int64, Data.NGUOI_PHAT_SINH);
                    db.AddInParameter(cmd_Update, "@ngay_phat_sinh", DbType.DateTime, Data.NGAY_PHAT_SINH);
                    db.AddInParameter(cmd_Update, "@kho_id1", DbType.Int64, Data.KHO_ID1);
                    db.AddInParameter(cmd_Update, "@kho_id2", DbType.Int64, Data.KHO_ID2);
                    db.AddInParameter(cmd_Update, "@don_vi_tinh", DbType.Int64, Data.DON_VI_TINH);
                    db.AddInParameter(cmd_Update, "@gia", DbType.Decimal, Data.GIA);
                    db.AddInParameter(cmd_Update, "@tinh_trang_hh", DbType.Int64, Data.TINH_TRANG_HH);

                    db.ExecuteNonQuery(cmd_Update, plTrans.dbTrans);
                }
                else
                {
                    string sql = "insert into kho_ton_kho_" +
                        ky_id +
                        " values(@id_tem, @src_id, @src_type, @des_id, @des_type, @hh_id, @so_luong, " +
                        "@tong_trong_luong, @nguoi_cap_nhat, @ngay_cap_nhat, @nguoi_phat_sinh, " +
                        "@ngay_phat_sinh, @inout1, @kho_id1, @inout2, @kho_id2, @don_vi_tinh, " +
                        "@gia, @tinh_trang_hh)";
                    DbCommand cmd_Insert = db.GetSQLStringCommand(sql);
                    if (Data.ID_TEM <= 0)
                        Data.ID_TEM = db.GetID(HelpGen.G_FW_ID, dbTrans);
                    db.AddInParameter(cmd_Insert, "@id_tem", DbType.Int64, Data.ID_TEM);
                    db.AddInParameter(cmd_Insert, "@src_id", DbType.Int64, Data.SRC_ID);
                    db.AddInParameter(cmd_Insert, "@src_type", DbType.Int32, Data.SRC_TYPE);
                    db.AddInParameter(cmd_Insert, "@des_id", DbType.Int64, Data.DES_ID);
                    db.AddInParameter(cmd_Insert, "@des_type", DbType.Int32, Data.DES_TYPE);
                    db.AddInParameter(cmd_Insert, "@hh_id", DbType.Int64, Data.HH_ID);
                    db.AddInParameter(cmd_Insert, "@so_luong", DbType.Decimal, Data.SO_LG);
                    db.AddInParameter(cmd_Insert, "@tong_trong_luong", DbType.Decimal, Data.TONG_TR_LG);
                    db.AddInParameter(cmd_Insert, "@nguoi_cap_nhat", DbType.Int64, Data.NGUOI_CAP_NHAT);
                    db.AddInParameter(cmd_Insert, "@ngay_cap_nhat", DbType.DateTime, Data.NGAY_CAP_NHAT);
                    db.AddInParameter(cmd_Insert, "@nguoi_phat_sinh", DbType.Int64, Data.NGUOI_PHAT_SINH);
                    db.AddInParameter(cmd_Insert, "@ngay_phat_sinh", DbType.DateTime, Data.NGAY_PHAT_SINH);
                    db.AddInParameter(cmd_Insert, "@inout1", DbType.String, Data.INOUT1);
                    db.AddInParameter(cmd_Insert, "@kho_id1", DbType.Int64, Data.KHO_ID1);
                    db.AddInParameter(cmd_Insert, "@inout2", DbType.String, Data.INOUT2);
                    db.AddInParameter(cmd_Insert, "@kho_id2", DbType.Int64, Data.KHO_ID2);
                    db.AddInParameter(cmd_Insert, "@don_vi_tinh", DbType.Int64, Data.DON_VI_TINH);
                    db.AddInParameter(cmd_Insert, "@gia", DbType.Decimal, Data.GIA);
                    db.AddInParameter(cmd_Insert, "@tinh_trang_hh", DbType.Int64, Data.TINH_TRANG_HH);

                    db.ExecuteNonQuery(cmd_Insert, dbTrans);
                }
            }
            catch (Exception ex)
            {
                PLException.AddException(ex);
                return false;
            }
            return true;
        }
Пример #8
0
 /// <summary>
 /// Lấy dữ liệu gốc từ DB
 /// </summary>
 /// <param name="plTrans">Đối tượng PLTransaction</param>        
 /// <param name="DOX">Đối tượng DOPhieuX</param>
 /// <returns>Danh sách các đối tượng DOFWObjRelData</returns>
 public static List<DOFWObjRelData> GetDataDesDB(PLTransaction plTrans, DOPhieuX DOX,long ky_id)
 {
     List<DOFWObjRelData> listObjRel = new List<DOFWObjRelData>();
     try
     {
         ITonKho data = (ITonKho)DOX;
         //long ky_id = KhoTonKhoHelp.GetKy(plTrans, data.GetNgayPhatSinh());
         DataSet ds = plTrans.LoadDataSet("kho_ton_kho_" + ky_id, "DES_ID", DOX.GetID());
         foreach (DataRow dr in ds.Tables[0].Rows)
         {
             DOFWObjRelData ObjRel = new DOFWObjRelData();
             ObjRel.ID_TEM = HelpNumber.ParseInt64(dr["ID_TEM"]);
             ObjRel.SRC_ID = HelpNumber.ParseInt64(dr["SRC_ID"]);
             ObjRel.SRC_TYPE = HelpNumber.ParseInt64(dr["SRC_TYPE"]);
             ObjRel.DES_ID = HelpNumber.ParseInt64(dr["DES_ID"]);
             ObjRel.DES_TYPE = HelpNumber.ParseInt64(dr["DES_TYPE"]);
             ObjRel.HH_ID = HelpNumber.ParseInt64(dr["HH_ID"]);
             ObjRel.SO_LG = HelpNumber.ParseDecimal(dr["SO_LG"]);
             ObjRel.TONG_TR_LG = HelpNumber.ParseDecimal(dr["TONG_TR_LG"]);
             ObjRel.NGUOI_CAP_NHAT = HelpNumber.ParseInt64(dr["NGUOI_CAP_NHAT"]);
             ObjRel.NGAY_CAP_NHAT = (DateTime?)DateTime.Parse(dr["NGAY_CAP_NHAT"].ToString());
             ObjRel.NGUOI_PHAT_SINH = HelpNumber.ParseInt64(dr["NGUOI_PHAT_SINH"]);
             ObjRel.NGAY_PHAT_SINH = (DateTime?)DateTime.Parse(dr["NGAY_PHAT_SINH"].ToString());
             ObjRel.INOUT1 = dr["INOUT1"].ToString();
             ObjRel.KHO_ID1 = HelpNumber.ParseInt64(dr["KHO_ID1"]);
             ObjRel.INOUT2 = dr["INOUT2"].ToString();
             ObjRel.KHO_ID2 = HelpNumber.ParseInt64(dr["KHO_ID2"]);
             ObjRel.DON_VI_TINH = HelpNumber.ParseInt64(dr["DON_VI_TINH"]);
             ObjRel.GIA = HelpNumber.ParseDecimal(dr["GIA"]);
             ObjRel.TINH_TRANG_HH = HelpNumber.ParseInt64(dr["TINH_TRANG_HH"]);
             listObjRel.Add(ObjRel);
         }
         return listObjRel;
     }
     catch (Exception ex)
     {
         plTrans.Rollback();
         PLException.AddException(ex);
         return listObjRel;
     }
 }
Пример #9
0
 /// <summary>
 /// Lấy Nhập/Xuất 2 từ loại phiếu
 /// </summary>
 /// <param name="loaiphieu_id">ID loại phiếu</param>
 /// <returns>Chuỗi cho biết phiếu là thuộc loại Nhập/Xuất</returns>
 private static string INOUT2FromType(PLTransaction plTrans, long loaiphieu_id)
 {
     try
     {
         DatabaseFB db = plTrans.db;
         DbTransaction trans = plTrans.dbTrans;
         string sql = "select inout2 from TB_TYPE_ID where id='" + loaiphieu_id + "'";
         DbCommand cmd_INOUT2 = db.GetSQLStringCommand(sql);
         object inout2 = db.ExecuteScalar(cmd_INOUT2, trans);
         return inout2 != null ? inout2.ToString() : "";
     }
     catch
     {
         return "";
     }
 }
Пример #10
0
        private bool UpdateX(PLTransaction plTrans, List<DOFWObjRelData> listObjRel, DOPhieuX DOX)
        {
            bool flag = false;
            ITonKho data = (ITonKho)DOX;
            long ky_id = KhoTonKhoHelp.GetKy(plTrans, data.GetNgayPhatSinh());
            //Danh sách tạo từ DB (trường hợp update)
            List<DOFWObjRelData> listObjRelDB = KhoTonKhoHelp.GetDataDesDB(plTrans, DOX,ky_id);
            if (listObjRel.Count > 0)
            {
                foreach (DOFWObjRelData ObjRel in listObjRel)
                {
                    if (KhoTonKhoHelp.Check_Exist_ID(plTrans,ky_id,
                        ObjRel.HH_ID, ObjRel.TINH_TRANG_HH, ObjRel.DES_ID, ObjRel.DES_TYPE))
                    {
                        flag = DAFWObjRelData.I.Update(plTrans, ObjRel, true,ky_id);
                        foreach (DOFWObjRelData _ObjRel in listObjRelDB)
                        {
                            if ((ObjRel.DES_ID == _ObjRel.DES_ID) && (ObjRel.DES_TYPE == _ObjRel.DES_TYPE)
                                && (ObjRel.HH_ID == _ObjRel.HH_ID) && (ObjRel.TINH_TRANG_HH == _ObjRel.TINH_TRANG_HH))
                            {
                                ObjRel.SO_LG -= _ObjRel.SO_LG;
                                ObjRel.TONG_TR_LG -= _ObjRel.TONG_TR_LG;
                            }
                        }
                    }
                    else
                    {
                        flag = DAFWObjRelData.I.Update(plTrans, ObjRel, false,ky_id);
                    }

                    if (flag == false)
                    {
                        plTrans.Rollback();
                        return flag;
                    }
                    else
                    {
                        //Cập nhật tồn kho từ kỳ hiện tại trở về sau
                        KhoTonKhoHelp.CapNhatNhapXuatChuyen(plTrans, ObjRel, 1,ky_id);
                    }
                }
                if (listObjRelDB.Count > 0)
                {
                    //Kiểm tra trường hợp update loại bỏ 1 số hàng hóa khỏi phiếu
                    //Khi đó ta phải loại bỏ luôn các hàng hóa trong bảng phát sinh tồn kho
                    foreach (DOFWObjRelData ObjRel in listObjRelDB)
                    {
                        //Nếu không tìm thấy đối tượng trong danh sách
                        //-> người dùng đã loại bỏ hàng hóa đó ra khỏi lưới
                        if (!KhoTonKhoHelp.Check_DOFWObjRelDataInList(listObjRel, ObjRel))
                        {
                            flag = DAFWObjRelData.I.DeleteDetail(plTrans, ObjRel,ky_id);
                            if (flag == false)
                            {
                                plTrans.Rollback();
                                return flag;
                            }
                        }
                    }
                }
            }
            return flag;
        }
Пример #11
0
 /// <summary>
 /// Lấy đơn vị tính của hàng hóa
 /// </summary>
 /// <param name="hanghoa_id">Hàng hóa ID</param>
 /// <returns>Đơn vị tính của hàng hóa</returns>
 private static long DVTFromHH_ID(PLTransaction plTrans, long hanghoa_id)
 {
     try
     {
         DatabaseFB db = plTrans.db;
         DbTransaction trans = plTrans.dbTrans;
         string sql = "select dvt_id from dm_hang_hoa where id='" + hanghoa_id + "'";
         DbCommand cmd_DVT = db.GetSQLStringCommand(sql);
         object dvt_id = db.ExecuteScalar(cmd_DVT, trans);
         return dvt_id != null ? HelpNumber.ParseInt64(dvt_id) : -1;
     }
     catch {
         return -1;
     }
 }
Пример #12
0
        /// <summary>
        /// Lấy tên bảng, cột của 1 loại phiếu chỉ định (Support cho GetData và GetDataDes)
        /// </summary>
        /// <param name="loaiphieu_id">Loại phiếu</param>
        /// <returns>DataSet chứa 1 DataTable miêu tả tên bảng và các cột</returns>
        private static DataSet Get_TableColumnMap(PLTransaction plTrans, long loaiphieu_id)
        {
            try
            {
                DbCommand cmd_Select = plTrans.db.GetStoredProcCommand("FW_TON_KHO_LAY_TEN_BANG_COT");
                plTrans.db.AddInParameter(cmd_Select, "@LOAI_PHIEU_ID", DbType.Int64, loaiphieu_id);
                DataSet ds = new DataSet();
                plTrans.LoadDataSet(ds, cmd_Select);

                return ds;
            }
            catch (Exception ex)
            {
                plTrans.Rollback();
                PLException.AddException(ex);
                return null;
            }
        }
Пример #13
0
 /// <summary>
 /// Cập nhật thông tin ghi chú cho hàng hóa trong kho (có giao tác)
 /// </summary>
 /// <param name="plTrans">Đối tượng giao tác</param>
 /// <param name="kkd_id">Kỳ kinh doanh ID</param>
 /// <param name="hh_id">Hàng hóa ID</param>
 /// <param name="kho_id">Kho ID</param>
 /// <param name="tthtk_id">Tình trạng hàng hóa ID</param>
 /// <param name="ghi_chu">Ghi chú</param>
 public static void UpdateGhiChu(PLTransaction plTrans, long kkd_id, 
     long hh_id, long kho_id, long tthtk_id, string ghi_chu)
 {
     try
     {
         DatabaseFB db = plTrans.db;
         DbTransaction dbTrans = plTrans.dbTrans;
         string sql = "update kho_ton_kho_" + kkd_id +
             "_dau_ky set ghi_chu='" + ghi_chu + "' where hh_id=" + hh_id +
             " and kho_id=" + kho_id + " and tthtk_id=" + tthtk_id +
             " and ((ghi_chu is null) or (ghi_chu=''))";
         DbCommand cmd_Update = db.GetSQLStringCommand(sql);
         db.ExecuteNonQuery(cmd_Update, dbTrans);
     }
     catch { }
 }
Пример #14
0
        /// <summary>
        /// Cập nhật thông tin ghi chú giá bán giá cif vào 3 bảng:dm_hang_hoa
        /// ,kho_ton_kho_kkd_id_dau_ky,gia_ban_tham_khao(không giao tác)
        /// </summary>
        /// /// <param name="plTrans">Đối tượng giao tác</param>
        /// <param name="kkd_id">Kỳ kinh doanh ID</param>
        /// <param name="hh_id">Hàng hóa ID</param>
        /// <param name="kho_id">Kho ID</param>
        /// <param name="tthtk_id">Tình trạng hàng hóa ID</param>
        /// <param name="ghi_chu">Ghi chú</param>
        /// <param name="ghi_chu">giá bán</param>
        /// <param name="ghi_chu">giá cif</param>
        public static bool UpdateGhiChuGiaBanCIF(PLTransaction plTrans, long kkd_id,
            long hh_id, long kho_id, long tthtk_id,long vth_id, string ghi_chu, decimal gia_ban, decimal gia_cif)
        {
            try
            {
                DatabaseFB db = plTrans.db;
                DbTransaction dbTrans = plTrans.dbTrans;

                DbCommand cmd_Update = db.GetStoredProcCommand("UPDATE_GHICHU_GIABAN_CIF");
                db.AddInParameter(cmd_Update, "@KYKD_ID", DbType.Int64, kkd_id);
                db.AddInParameter(cmd_Update, "@HH_ID", DbType.Int64, hh_id);
                db.AddInParameter(cmd_Update, "@KHO_ID", DbType.Int64, kho_id);
                db.AddInParameter(cmd_Update, "@TTHTK_ID", DbType.Int64, tthtk_id);
                db.AddInParameter(cmd_Update, "@VTH_ID", DbType.Int64, vth_id);
                db.AddInParameter(cmd_Update, "@GIA_BAN", DbType.Decimal, gia_ban);
                db.AddInParameter(cmd_Update, "@DON_GIA", DbType.Decimal, gia_cif);
                db.AddInParameter(cmd_Update, "@GHI_CHU", DbType.String, ghi_chu);
                if (db.ExecuteNonQuery(cmd_Update, dbTrans) > 0) return true;
                else return false;
            }
            catch { return false; }
        }
Пример #15
0
        /// <summary>
        /// Lấy kỳ kinh doanh dựa vào ngày phát sinh (có giao tác)
        /// </summary>
        /// <param name="plTrans">Giao tác dùng chung</param>
        /// <param name="ngay_phat_sinh">Ngày phát sinh</param>
        /// <returns>ID kỳ kinh doanh</returns>
        public static long GetKy(PLTransaction plTrans, DateTime? ngay_phat_sinh)
        {
            try
            {
                DatabaseFB db = plTrans.db;
                DbCommand cmd_Get = plTrans.db.GetStoredProcCommand("FW_KY_GET_KY_KD");
                db.AddInParameter(cmd_Get, "@i_ngay", DbType.DateTime, ngay_phat_sinh);
                db.AddOutParameter(cmd_Get, "@o_ky_id", DbType.Int64, 1);
                db.ExecuteNonQuery(cmd_Get, plTrans.dbTrans);

                object ky_id = db.GetParameterValue(cmd_Get, "@o_ky_id");
                if (ky_id != null)
                    return HelpNumber.ParseInt64(ky_id);
                else
                    return -1;
            }
            catch {
                return -1;
            }
        }
Пример #16
0
 //DUCHS: LAY VE TEN BANG KHO_TON_KHO_..._DAU_KY THEO KY
 public static string GetNameTonKhoTheoKy(PLTransaction plTrans, DateTime? ngay_phat_sinh)
 {
     return "KHO_TON_KHO_"+ GetKy(plTrans,ngay_phat_sinh)+"_DAU_KY";
 }
Пример #17
0
 public static void CapNhatTonKho(PLTransaction plTrans, long kkd_id, bool IsNhap,
     long hh_id, long kho_id, long tinh_trang_hh, decimal so_luong, decimal trong_luong, int IUD)
 {
     DatabaseFB db = plTrans.db;
     DbTransaction trans = plTrans.dbTrans;
     try
     {
         DbCommand cmd = db.GetStoredProcCommand("KHO_TON_KHO_DAUKY_TONKHO");
         db.AddInParameter(cmd, "@I_HANG_HOA_ID", DbType.Int64, hh_id);
         db.AddInParameter(cmd, "@I_KHO_ID", DbType.Int64, kho_id);
         db.AddInParameter(cmd, "@I_TINH_TRANG", DbType.Int32, tinh_trang_hh);
         db.AddInParameter(cmd, "@I_TRONG_LUONG", DbType.Decimal, trong_luong);
         db.AddInParameter(cmd, "@I_SO_LUONG", DbType.Decimal, so_luong);
         db.AddInParameter(cmd, "@I_KKD_ID", DbType.Int64, kkd_id);
         if (IsNhap)
             db.AddInParameter(cmd, "@I_DAUKY_NHAP_XUAT_DIEUCHINH", DbType.Int32, 2);
         else
             db.AddInParameter(cmd, "@I_DAUKY_NHAP_XUAT_DIEUCHINH", DbType.Int32, 3);
         db.AddInParameter(cmd, "@I_INSERT_UPDATE_DELETE", DbType.Int32, IUD);
         db.ExecuteNonQuery(cmd, trans);
     }
     catch { }
 }
Пример #18
0
        /// <summary>
        /// Kiểm tra bảng đã tồn tại trong DB hay chưa
        /// </summary>
        /// <param name="table_name">Tên bảng cần kiểm tra</param>
        /// <returns>Số bảng tìm được (=0 -> bảng không tồn tại)</returns>
        public static int CheckTableExist(PLTransaction plTrans, string table_name)
        {
            DatabaseFB db = plTrans.db;
            DbTransaction dbTrans = plTrans.dbTrans;

            string sql = "SELECT COUNT(RDB$RELATION_NAME) as name " +
                "FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG=0 " +
                "AND RDB$VIEW_BLR IS NULL " +
                "AND (RDB$RELATION_NAME = '" + table_name + "')";
            DbCommand check_tb = db.GetSQLStringCommand(sql);
            return (int)db.ExecuteScalar(check_tb, dbTrans);
        }
Пример #19
0
        /// <summary>
        /// Lấy dữ liệu chuẩn bị cho việc lưu DB
        /// </summary>
        /// <param name="Src">Loại phiếu Src</param>
        /// <param name="SrcID">ID phiếu Src</param>
        /// <param name="DOX">Đối tượng DOPhieuX</param>
        /// <returns>Danh sách các đối tượng DOFWObjRelData</returns>
        public static List<DOFWObjRelData> GetData(PLTransaction plTrans, long Src, long SrcID, DOPhieuX DOX)
        {
            List<DOFWObjRelData> listObjRel = new List<DOFWObjRelData>();
            try
            {
                ITonKho data = (ITonKho)DOX;
                DataSet ds_hanghoa = data.GetTonKho().DataSet;

                DataSet PinMap_ds = Get_TableColumnMap(plTrans, DOX.GetPhieuType().GetTypeID());

                if (PinMap_ds != null && PinMap_ds.Tables.Count > 0)
                {
                    DataTable PinMap = PinMap_ds.Tables[0];
                    string HangHoa_ID = PinMap.Rows[0]["PIN_HANG_HOA"] != null ?
                        PinMap.Rows[0]["PIN_HANG_HOA"].ToString().Trim() : "";
                    string SoLuong = PinMap.Rows[0]["PIN_SO_LUONG"] != null ?
                        PinMap.Rows[0]["PIN_SO_LUONG"].ToString().Trim() : "";
                    string TrongLuong = PinMap.Rows[0]["PIN_TRONG_LUONG"] != null ?
                        PinMap.Rows[0]["PIN_TRONG_LUONG"].ToString().Trim() : "";
                    string DonGia = PinMap.Rows[0]["PIN_DON_GIA"] != null ?
                        PinMap.Rows[0]["PIN_DON_GIA"].ToString().Trim() : "";
                    string TTHTK_ID = PinMap.Rows[0]["PIN_TTHTK"] != null ?
                        PinMap.Rows[0]["PIN_TTHTK"].ToString().Trim() : "";

                    if (HangHoa_ID != "" && ds_hanghoa.Tables.Count > 0 &&
                        ds_hanghoa.Tables[0].Columns.Contains(HangHoa_ID))
                    {
                        foreach (DataRow dr in ds_hanghoa.Tables[0].Rows)
                        {
                            DOFWObjRelData ObjRel = new DOFWObjRelData();
                            ObjRel.SRC_ID = SrcID;
                            ObjRel.SRC_TYPE = Src;
                            ObjRel.DES_ID = DOX.GetID();
                            ObjRel.DES_TYPE = DOX.GetPhieuType().GetTypeID();
                            ObjRel.HH_ID = HelpNumber.ParseInt64(dr[HangHoa_ID]);
                            if (SoLuong != "" && ds_hanghoa.Tables[0].Columns.Contains(SoLuong))
                                ObjRel.SO_LG = HelpNumber.ParseDecimal(dr[SoLuong]);
                            if (TrongLuong != "" && ds_hanghoa.Tables[0].Columns.Contains(TrongLuong))
                                ObjRel.TONG_TR_LG = HelpNumber.ParseDecimal(dr[TrongLuong]);

                            ObjRel.NGUOI_CAP_NHAT = data.GetNguoiCapNhat();
                            ObjRel.NGAY_CAP_NHAT = data.GetNgayCapNhat();
                            ObjRel.NGUOI_PHAT_SINH = data.GetNguoiPhatSinh();
                            ObjRel.NGAY_PHAT_SINH = data.GetNgayPhatSinh();

                            string inout1 = PinMap.Rows[0]["INOUT1"].ToString();//INOUT1FromType(plTrans, ObjRel.DES_TYPE);
                            if (inout1 != "")
                            {
                                ObjRel.INOUT1 = inout1;
                                if (inout1 == "OUT" || inout1 == "IN")
                                    ObjRel.KHO_ID1 = data.GetKho1();
                            }
                            else
                                ObjRel.INOUT1 = "";
                            string inout2 = PinMap.Rows[0]["INOUT2"].ToString();//INOUT2FromType(plTrans, ObjRel.DES_TYPE);
                            if (inout2 == "OUT" || inout2 == "IN")
                            {
                                ObjRel.INOUT2 = inout2;
                                ObjRel.KHO_ID2 = data.GetKho2();
                            }
                            else
                                ObjRel.INOUT2 = "";

                            long dvt_id = DVTFromHH_ID(plTrans, ObjRel.HH_ID);
                            if (dvt_id != -1)
                                ObjRel.DON_VI_TINH = dvt_id;
                            if (DonGia != "" && ds_hanghoa.Tables[0].Columns.Contains(DonGia))
                                ObjRel.GIA = HelpNumber.ParseDecimal(dr[DonGia]);
                            if (TTHTK_ID != "" && ds_hanghoa.Tables[0].Columns.Contains(TTHTK_ID))
                                ObjRel.TINH_TRANG_HH = HelpNumber.ParseInt64(dr[TTHTK_ID]);
                            ObjRel.GHI_CHU = dr["GHI_CHU"] != null ? dr["GHI_CHU"].ToString() : "";
                            listObjRel.Add(ObjRel);
                        }
                        return listObjRel;
                    }
                    else
                        return listObjRel;
                }
                else
                    return listObjRel;
            }
            catch (Exception ex)
            {
                plTrans.Rollback();
                PLException.AddException(ex);
                return listObjRel;
            }
        }
Пример #20
0
        /// <summary>
        /// Xóa bảng dữ liệu trong kì của kỳ kinh doanh chỉ định
        /// </summary>
        /// <param name="ky_id">Kỳ kinh doanh cần xóa bảng</param>
        public static bool DeleteTableDU_LIEU_TRONG_KY(PLTransaction plTrans, long ky_id)
        {
            try
            {
                DatabaseFB db = plTrans.db;
                DbTransaction dbTrans = plTrans.dbTrans;

                string table_name = "KHO_TON_KHO_" + ky_id;
                int tableCount = CheckTableExist(plTrans, table_name);

                if (tableCount > 0)
                {
                    string sql = "drop table " + table_name;
                    DbCommand drop_tb = db.GetSQLStringCommand(sql);
                    db.ExecuteNonQuery(drop_tb, dbTrans);
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
Пример #21
0
        public static bool Check_PLQ(PLTransaction plTrans, long ky_id, 
            long des_id, long des_type)
        {
            try
            {
                DatabaseFB db = plTrans.db;

                //DbCommand cmd1 = db.GetStoredProcCommand("FW_KY_GET_KY_KD");
                //db.AddInParameter(cmd1, "@I_NGAY", DbType.DateTime, ngay_phat_sinh);
                //DataSet ds = new DataSet();
                //plTrans.LoadDataSet(ds, cmd1, "NOOP");
                //DataTable dt = ds.Tables[0];
                //long KyID = HelpNumber.ParseInt64(dt.Rows[0][0]);

                string strsql = "select * from kho_ton_kho_" + ky_id + " f " +
                                "where f.src_id=" + des_id + " and f.src_type=" + des_type;
                DbCommand cmd = db.GetSQLStringCommand(strsql);
                DataSet ds1 = new DataSet();
                plTrans.LoadDataSet(ds1, cmd, "NOOP");
                DataTable dtkq = ds1.Tables[0];

                if ((dtkq != null) && (dtkq.Rows.Count > 0)) return true;// neu da co dong du lieu
                else return false; // neu chua co dong du lieu
            }
            catch {
                return false;
            }
        }