Beispiel #1
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());
        }
        /// <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;
            }
        }