public DeNghiNhapDieuChuyenTGBussiness(ChungTuNhapDieuChuyenInfo chungTuDeNghiNhanDieuChuyenInfor)
     : base(chungTuDeNghiNhanDieuChuyenInfor)
 {
     //if (chungTuDeNghiNhanDieuChuyenInfor.LoaiChungTu != Convert.ToInt32(TransactionType.DE_NGHI_NHAN_DIEU_CHUYEN))
     //{
     //    throw new ManagedException("Không phải loại chứng từ đề nghị nhận điều chuyển");
     //}
 }
 public DeNghiNhapDieuChuyenTGBussiness()
 {
     ChungTu = new ChungTuNhapDieuChuyenInfo
     {
         LoaiChungTu = Convert.ToInt32(TransactionType.DE_NGHI_NHAN_DIEU_CHUYEN_TRUNG_GIAN),
         IdNhanVien  = Declare.IdNhanVien,
         IdKho       = Declare.IdKho
     };
 }
 public NhapDieuChuyenTGBussiness()
 {
     ChungTu = new ChungTuNhapDieuChuyenInfo
     {
         LoaiChungTu = Convert.ToInt32(TransactionType.NHAN_DIEU_CHUYEN),
         IdNhanVien  = Declare.IdNhanVien,
         IdKho       = Declare.IdKho
     };
 }
 public void Update(ChungTuNhapDieuChuyenInfo chungTuNhanDieuChuyenInfor)
 {
     ExecUpdateCommand(Declare.StoreProcedureNamespace.spChungTuNDCUpdate, chungTuNhanDieuChuyenInfor.IdChungTu,
                       chungTuNhanDieuChuyenInfor.SoChungTu,
                       chungTuNhanDieuChuyenInfor.IdKho,
                       chungTuNhanDieuChuyenInfor.IdNguoiNhapXuatKho,
                       chungTuNhanDieuChuyenInfor.LoaiChungTu,
                       chungTuNhanDieuChuyenInfor.NgayNhapXuatKho,
                       chungTuNhanDieuChuyenInfor.TrangThai);
 }
Example #5
0
 public frm_DieuChuyenKhoBase(ChungTuNhapDieuChuyenInfo info, string soPhieuPrefix) : base(soPhieuPrefix)
 {
     InitializeComponent();
     chungTuInfo = info;
     OID         = chungTuInfo.IdChungTu;
     SoChungTu   = chungTuInfo.SoChungTu;
     SoPO        = String.Empty;
     NgayLap     = chungTuInfo.NgayLap.ToString();
     SoCTG       = info.SoChungTuGoc;
 }
 public int Insert(ChungTuNhapDieuChuyenInfo chungTuNhanDieuChuyenInfor)
 {
     ExecInsertCommand(Declare.StoreProcedureNamespace.spChungTuNDCInsert, chungTuNhanDieuChuyenInfor.IdChungTu,
                       chungTuNhanDieuChuyenInfor.SoChungTu,
                       chungTuNhanDieuChuyenInfor.IdKho,
                       chungTuNhanDieuChuyenInfor.IdNguoiNhapXuatKho,
                       chungTuNhanDieuChuyenInfor.LoaiChungTu,
                       chungTuNhanDieuChuyenInfor.NgayNhapXuatKho,
                       chungTuNhanDieuChuyenInfor.TrangThai);
     return(Convert.ToInt32(Parameters["p_IdChungTu"].Value.ToString()));
 }
Example #7
0
 public void Update(ChungTuNhapDieuChuyenInfo chungTuDeNghiNhanDieuChuyenInfor)
 {
     ExecUpdateCommand(Declare.StoreProcedureNamespace.spChungTuDNNDCUpdate, chungTuDeNghiNhanDieuChuyenInfor.IdChungTu,
                       chungTuDeNghiNhanDieuChuyenInfor.SoChungTu,
                       chungTuDeNghiNhanDieuChuyenInfor.IdKho,
                       chungTuDeNghiNhanDieuChuyenInfor.IdNhanVien,
                       chungTuDeNghiNhanDieuChuyenInfor.LoaiChungTu,
                       chungTuDeNghiNhanDieuChuyenInfor.NgayLap,
                       chungTuDeNghiNhanDieuChuyenInfor.TrangThai,
                       chungTuDeNghiNhanDieuChuyenInfor.GhiChu,
                       chungTuDeNghiNhanDieuChuyenInfor.HoaDonDC,
                       chungTuDeNghiNhanDieuChuyenInfor.PhuongTien,
                       chungTuDeNghiNhanDieuChuyenInfor.IdKhoNhanCuoi);
 }
Example #8
0
 public frm_PhieuNhapDieuChuyen(ChungTuNhapDieuChuyenInfo info)
     : base(info, Declare.Prefix.PhieuXuatDieuChuyen)
 {
     InitializeComponent();
     Common.LoadStyle(this);
     this.soCTG                     = info.SoChungTuGoc;
     this.NguoiLap                  = info.NguoiLap;
     this.TenKho                    = info.TenKho;
     this.IdKhoDieuChuyen           = info.IdKhoDieuChuyen;
     this.SoPO                      = info.SoChungTuGoc;
     this.trangThai                 = info.TrangThai;
     this.NgayLap                   = info.NgayLap;
     dgvChiTiet.AutoGenerateColumns = false;
     business = new NhapDieuChuyenBussiness(info);
 }
Example #9
0
 public int Insert(ChungTuNhapDieuChuyenInfo chungTuDeNghiNhanDieuChuyenInfor)
 {
     ExecInsertCommand(Declare.StoreProcedureNamespace.spChungTuDNNDCInsert, chungTuDeNghiNhanDieuChuyenInfor.IdChungTu,
                       chungTuDeNghiNhanDieuChuyenInfor.SoChungTu,
                       chungTuDeNghiNhanDieuChuyenInfor.IdKho,
                       chungTuDeNghiNhanDieuChuyenInfor.IdNhanVien,
                       chungTuDeNghiNhanDieuChuyenInfor.LoaiChungTu,
                       chungTuDeNghiNhanDieuChuyenInfor.NgayLap,
                       chungTuDeNghiNhanDieuChuyenInfor.TrangThai,
                       chungTuDeNghiNhanDieuChuyenInfor.SoChungTuGoc,
                       chungTuDeNghiNhanDieuChuyenInfor.GhiChu,
                       chungTuDeNghiNhanDieuChuyenInfor.IdNguoiUyNhiem,
                       chungTuDeNghiNhanDieuChuyenInfor.IdNguoiVC,
                       chungTuDeNghiNhanDieuChuyenInfor.IdNguoiKyDuyet,
                       chungTuDeNghiNhanDieuChuyenInfor.HoaDonDC,
                       chungTuDeNghiNhanDieuChuyenInfor.PhuongTien,
                       chungTuDeNghiNhanDieuChuyenInfor.IdKhoNhanCuoi);
     chungTuDeNghiNhanDieuChuyenInfor.IdChungTu = Convert.ToInt32(Parameters["p_IdChungTu"].Value.ToString());
     //chungTuDeNghiNhanDieuChuyenInfor.SoChungTu = Convert.ToString(Parameters["p_SoChungTu"].Value);
     return(Convert.ToInt32(Parameters["p_IdChungTu"].Value.ToString()));
 }
Example #10
0
        private void btnMoPhieu_Click(object sender, EventArgs e)
        {
            ChungTuNhapDieuChuyenInfo info = null;

            try
            {
                if (grvDanhSach.FocusedRowHandle < 0)
                {
                    return;
                }

                info = ((ChungTuNhapDieuChuyenInfo)grvDanhSach.GetRow(grvDanhSach.FocusedRowHandle));

                if (!CommonProvider.Instance.Check_Lock_ChungTu(info.IdChungTu))
                {
                    frmProgress.Instance.DoWork(LoadData);

                    return;
                }

                if (!CommonProvider.Instance.Lock_Unlock_ChungTu(info, 1))
                {
                    throw new ManagedException("Chứng từ đã bị khóa bởi người dùng khác, không thể mở được!");
                }

                info = NhapDieuChuyenKhoDataProvider.Instance.GetChungTuNhanDieuChuyenById(info.IdChungTu);

                if (info.LoaiChungTu == Convert.ToInt32(TransactionType.DE_NGHI_NHAN_DIEU_CHUYEN) ||
                    info.LoaiChungTu == Convert.ToInt32(TransactionType.NHAN_DIEU_CHUYEN))
                {
                    PhieuXuat = info.SoChungTu;
                    DienGiai  = info.GhiChu;
                    SoCTG     = info.SoChungTuGoc;
                    TrangThai = info.TrangThai;
                    NguoiLap  = info.NguoiLap;
                    TenKho    = info.TenKho;
                }
                else
                {
                    frmProgress.Instance.DoWork(LoadData);

                    throw new ManagedException("Chứng từ đã bị hủy!");
                }

                frm_PhieuDeNghiNhapDieuChuyen frm = new frm_PhieuDeNghiNhapDieuChuyen(info);

                if (frm.ShowDialog() == DialogResult.OK)
                {
                    frmProgress.Instance.DoWork(LoadData);
                }

                CommonProvider.Instance.Lock_Unlock_ChungTu(info, 0);
            }
            catch (ManagedException ex)
            {
                try
                {
                    if (info != null)
                    {
                        CommonProvider.Instance.Lock_Unlock_ChungTu(info, 0);
                    }
                }
                catch (Exception) { }

                MessageBox.Show(ex.Message);
            }
            catch (Exception ex)
            {
                try
                {
                    if (info != null)
                    {
                        CommonProvider.Instance.Lock_Unlock_ChungTu(info, 0);
                    }
                }
                catch (Exception) { }

                EventLogProvider.Instance.WriteOfflineLog(ex.ToString(), this.Name);
#if DEBUG
                MessageBox.Show(ex.ToString());
#else
                MessageBox.Show(ex.Message);
#endif
            }
        }
Example #11
0
        public void TestHuyDieuChuyen()
        {
            int            idKhoXuat = 7, idKhoNhan = 0, idSanPham = 56586;
            string         soChungTuXuat             = "PXDC-140314";
            HangTonKhoInfo hangTonKhoXuatInfoBefor   = null;
            HangTonKhoInfo hangTonKhoXuatTGInfoBefor = null;
            HangTonKhoInfo hangTonKhoNhanInfoBefor   = null;
            HangTonKhoInfo hangTonKhoNhanTGInfoBefor = null;
            HangTonKhoInfo hangTonKhoXuatInfoAfter   = null;
            HangTonKhoInfo hangTonKhoXuatTGInfoAfter = null;
            HangTonKhoInfo hangTonKhoNhanInfoAfter   = null;
            HangTonKhoInfo hangTonKhoNhanTGInfoAfter = null;

            ChungTuXuatDieuChuyenInfo chungTuXuatDieuChuyenInfo   = null;
            ChungTuXuatDieuChuyenInfo chungTuXuatDieuChuyenTGInfo = null;
            ChungTuNhapDieuChuyenInfo chungTuNhanDieuChuyenTGInfo = null;
            ChungTuNhapDieuChuyenInfo chungTuNhanDieuChuyenInfo   = null;

            chungTuXuatDieuChuyenInfo =
                DeNghiXuatDieuChuyenDataProvider.Instance.GetChungTuXuatDieuChuyenBySoChungTu(soChungTuXuat);

            chungTuNhanDieuChuyenTGInfo =
                DeNghiNhapDieuChuyenTGDataProvider.Instance.GetChungTuNhanDCTGBySoCTGoc(soChungTuXuat);

            chungTuNhanDieuChuyenInfo =
                DeNghiNhapDieuChuyenDataProvider.Instance.GetChungTuNhanDCBySoCTGoc(chungTuXuatDieuChuyenInfo.SoChungTu);

            if (chungTuNhanDieuChuyenInfo != null)
            {
                chungTuXuatDieuChuyenTGInfo =
                    DeNghiXuatDieuChuyenTGDataProvider.Instance.GetChungTuXuatDCTGBySoCTGoc(
                        chungTuNhanDieuChuyenInfo.SoChungTu);
            }


            frm_DanhSachPhieuDeNghiXuatDieuChuyen frmTest = new frm_DanhSachPhieuDeNghiXuatDieuChuyen();

            hangTonKhoXuatInfoBefor =
                HangTonKhoDAO.Instance.GetHangTonKhoById(chungTuXuatDieuChuyenInfo.IdKho, idSanPham, 0);

            if (chungTuNhanDieuChuyenTGInfo != null)
            {
                hangTonKhoNhanTGInfoBefor = HangTonKhoDAO.Instance.GetHangTonKhoById(chungTuNhanDieuChuyenTGInfo.IdKho,
                                                                                     idSanPham, 0);
            }

            if (chungTuNhanDieuChuyenInfo != null)
            {
                hangTonKhoNhanInfoBefor = HangTonKhoDAO.Instance.GetHangTonKhoById(chungTuNhanDieuChuyenInfo.IdKho, idSanPham, 0);
            }

            if (chungTuXuatDieuChuyenTGInfo != null)
            {
                hangTonKhoXuatTGInfoBefor = HangTonKhoDAO.Instance.GetHangTonKhoById(chungTuXuatDieuChuyenTGInfo.IdKho, idSanPham, 0);
            }


            frmTest.HuyDieuChuyen(chungTuXuatDieuChuyenInfo);

            hangTonKhoXuatInfoAfter =
                HangTonKhoDAO.Instance.GetHangTonKhoById(chungTuXuatDieuChuyenInfo.IdKho, idSanPham, 0);


            Assert.AreEqual(hangTonKhoXuatInfoBefor.TonAo - hangTonKhoXuatInfoAfter.TonAo, -1);

            if (chungTuXuatDieuChuyenInfo.LoaiChungTu == Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN))
            {
                Assert.AreEqual(hangTonKhoXuatInfoBefor.SoLuong - hangTonKhoXuatInfoAfter.SoLuong, -1);
            }

            if (chungTuNhanDieuChuyenTGInfo != null && chungTuNhanDieuChuyenInfo == null)
            {
                hangTonKhoNhanTGInfoAfter = HangTonKhoDAO.Instance.GetHangTonKhoById(chungTuNhanDieuChuyenTGInfo.IdKho,
                                                                                     idSanPham, 0);
                //điều chuyển khác trung tâm, chưa có đề nghị nhận
                Assert.AreEqual(hangTonKhoNhanTGInfoBefor.TonAo - hangTonKhoNhanTGInfoAfter.TonAo, 1);

                if (chungTuNhanDieuChuyenTGInfo.LoaiChungTu == Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN_TRUNG_GIAN))
                {
                    Assert.AreEqual(hangTonKhoNhanTGInfoBefor.SoLuong - hangTonKhoNhanTGInfoAfter.SoLuong, 1);
                }
            }

            if (chungTuNhanDieuChuyenInfo != null)
            {
                hangTonKhoNhanInfoAfter = HangTonKhoDAO.Instance.GetHangTonKhoById(chungTuNhanDieuChuyenInfo.IdKho, idSanPham, 0);

                //đã có đề nghị nhận
                Assert.AreEqual(hangTonKhoNhanInfoBefor.TonAo - hangTonKhoNhanInfoAfter.TonAo, 1);
            }

            //if (chungTuXuatDieuChuyenTGInfo != null)
            //{
            //    hangTonKhoXuatTGInfoAfter = HangTonKhoDAO.Instance.GetHangTonKhoById(chungTuXuatDieuChuyenTGInfo.IdKho, idSanPham, 0);
            //}
        }
Example #12
0
        public bool HuyDieuChuyen(ChungTuXuatDieuChuyenInfo chungTuXuatDieuChuyenInfo)
        {
            //ChungTuXuatDieuChuyenInfo chungTuXuatDieuChuyenInfo = null;
            ChungTuXuatDieuChuyenInfo       chungTuXuatDieuChuyenTgInfo     = null;
            ChungTuNhapDieuChuyenInfo       chungTuNhapDieuChuyenInfo       = null;
            ChungTuNhapDieuChuyenInfo       chungTuNhapDieuChuyenTgInfo     = null;
            DeNghiXuatDieuChuyenTGBussiness deNghiXuatDieuChuyenTgBussiness = null;
            DeNghiNhapDieuChuyenBussiness   deNghiNhapDieuChuyenBussiness   = null;
            DeNghiNhapDieuChuyenTGBussiness deNghiNhapDieuChuyenTgBussiness = null;
            NhapDieuChuyenTGBussiness       nhapDieuChuyenTgBussiness       = null;
            DeNghiXuatDieuChuyenBussiness   deNghiXuatDieuChuyenBussiness   = null;
            XuatDieuChuyenBussiness         xuatDieuChuyenBussiness         = null;
            ChungTuBusinessBase             businessCloned;
            Exception innerException = null;

            try
            {
                frmProgress.Instance.DoWork(
                    delegate
                {
                    try
                    {
                        frmProgress.Instance.Description = "Đang thực hiện ...";

                        frmProgress.Instance.MaxValue = 30;

                        CommonProvider.Instance.Check_Lock_ChungTu(chungTuXuatDieuChuyenInfo.IdChungTu);

                        frmProgress.Instance.Value += 1;

                        if (!CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuXuatDieuChuyenInfo, 1))
                        {
                            frmProgress.Instance.Description = "Không hoàn thành!";

                            frmProgress.Instance.Value = frmProgress.Instance.MaxValue;

                            throw new ManagedException(
                                String.Format("Chứng từ {0} đã bị khóa bởi người dùng khác, không thể hủy được!",
                                              chungTuXuatDieuChuyenInfo.SoChungTu));
                        }

                        frmProgress.Instance.Value += 1;

                        chungTuXuatDieuChuyenInfo =
                            DeNghiXuatDieuChuyenDataProvider.Instance.GetChungTuXuatDieuChuyenById(
                                chungTuXuatDieuChuyenInfo.IdChungTu);

                        frmProgress.Instance.Value += 1;

                        //ngay xuat kho < sysdate, thi khong huy duoc.
                        if ((chungTuXuatDieuChuyenInfo.LoaiChungTu ==
                             Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN) ||
                             XuatDieuChuyenDataProvider.Instance.GetListChiTietHangHoaByIdChungTu(
                                 chungTuXuatDieuChuyenInfo.IdChungTu).Count > 0) &&
                            chungTuXuatDieuChuyenInfo.NgayNhapXuatKho.Date !=
                            CommonProvider.Instance.GetSysDate().Date)
                        {
                            frmProgress.Instance.Description = "Không hoàn thành!";

                            frmProgress.Instance.Value = frmProgress.Instance.MaxValue;

                            throw new ManagedException(
                                String.Format("Chứng từ đã xuất từ ngày {0}, không thể hủy được!",
                                              chungTuXuatDieuChuyenInfo.NgayNhapXuatKho.Date));
                        }

                        frmProgress.Instance.Value += 1;

                        if (chungTuXuatDieuChuyenInfo == null ||
                            chungTuXuatDieuChuyenInfo.LoaiChungTu !=
                            Convert.ToInt32(TransactionType.DE_NGHI_XUAT_DIEU_CHUYEN) &&
                            chungTuXuatDieuChuyenInfo.LoaiChungTu !=
                            Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN))
                        {
                            frmProgress.Instance.DoWork(LoadData);

                            frmProgress.Instance.Description = "Không hoàn thành!";

                            frmProgress.Instance.Value = frmProgress.Instance.MaxValue;

                            throw new ManagedException("Chứng từ đã bị hủy!");
                        }

                        frmProgress.Instance.Value += 1;

                        chungTuNhapDieuChuyenInfo =
                            DeNghiNhapDieuChuyenDataProvider.Instance.GetChungTuNhanDCBySoCTGoc(
                                chungTuXuatDieuChuyenInfo.SoChungTu);

                        frmProgress.Instance.Value += 1;

                        if (chungTuNhapDieuChuyenInfo != null)
                        {
                            if (MessageBox.Show("Đã có đề nghị nhận điều chuyển, bạn có muốn tiếp tục không?",
                                                "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                                                MessageBoxDefaultButton.Button2) == DialogResult.No)
                            {
                                CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuXuatDieuChuyenInfo, 0);

                                frmProgress.Instance.Description = "Không hoàn thành!";

                                frmProgress.Instance.Value = frmProgress.Instance.MaxValue;

                                frmProgress.Instance.IsCompleted = true;

                                return;
                            }

                            CommonProvider.Instance.Check_Lock_ChungTu(chungTuNhapDieuChuyenInfo.IdChungTu);

                            frmProgress.Instance.Value += 1;

                            if (!CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuNhapDieuChuyenInfo, 1))
                            {
                                throw new ManagedException(
                                    String.Format(
                                        "Chứng từ {0} đã bị khóa bởi người dùng khác, không thể hủy được!",
                                        chungTuNhapDieuChuyenInfo.SoChungTu));
                            }

                            frmProgress.Instance.Value += 1;

                            chungTuNhapDieuChuyenInfo =
                                DeNghiNhapDieuChuyenDataProvider.Instance.GetChungTuNhanDCBySoCTGoc(
                                    chungTuXuatDieuChuyenInfo.SoChungTu);

                            frmProgress.Instance.Value += 1;

                            //neu co chung tu nhan dieu chuyen, thi khong huy duoc.
                            if (chungTuNhapDieuChuyenInfo.LoaiChungTu ==
                                Convert.ToInt32(TransactionType.NHAN_DIEU_CHUYEN) ||
                                NhapDieuChuyenKhoDataProvider.Instance.GetListChiTietHangHoaByIdChungTu(
                                    chungTuNhapDieuChuyenInfo.IdChungTu).Count > 0)
                            {
                                throw new ManagedException("Đã nhận điều chuyển, không thể hủy được!");
                            }

                            frmProgress.Instance.Value += 1;

                            chungTuXuatDieuChuyenTgInfo =
                                DeNghiXuatDieuChuyenTGDataProvider.Instance.GetChungTuXuatDCTGBySoCTGoc(
                                    chungTuNhapDieuChuyenInfo.SoChungTu);

                            frmProgress.Instance.Value += 1;

                            if (chungTuXuatDieuChuyenTgInfo != null)
                            {
                                deNghiXuatDieuChuyenTgBussiness =
                                    new DeNghiXuatDieuChuyenTGBussiness(chungTuXuatDieuChuyenTgInfo)
                                {
                                    ChungTu =
                                    {
                                        TrangThai   = Convert.ToInt32(TrangThaiDieuChuyen.HUY_DIEU_CHUYEN),
                                        LoaiChungTu = -Convert.ToInt32(TransactionType.DE_NGHI_XUAT_DIEU_CHUYEN_TRUNG_GIAN)
                                    }
                                };
                            }

                            frmProgress.Instance.Value += 1;

                            deNghiNhapDieuChuyenBussiness =
                                new DeNghiNhapDieuChuyenBussiness(chungTuNhapDieuChuyenInfo)
                            {
                                ChungTu =
                                {
                                    TrangThai   = Convert.ToInt32(TrangThaiDieuChuyen.HUY_DIEU_CHUYEN),
                                    LoaiChungTu = -Convert.ToInt32(TransactionType.DE_NGHI_NHAN_DIEU_CHUYEN)
                                }
                            };

                            frmProgress.Instance.Value += 1;
                        }

                        chungTuNhapDieuChuyenTgInfo =
                            DeNghiNhapDieuChuyenTGDataProvider.Instance.GetChungTuNhanDCTGBySoCTGoc(
                                chungTuXuatDieuChuyenInfo.SoChungTu);

                        frmProgress.Instance.Value += 1;

                        if (XuatDieuChuyenDataProvider.Instance.GetListChiTietHangHoaByIdChungTu(
                                chungTuXuatDieuChuyenInfo.IdChungTu).Count > 0 &&
                            (chungTuXuatDieuChuyenInfo.LoaiChungTu ==
                             Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN) ||
                             chungTuXuatDieuChuyenInfo.LoaiChungTu ==
                             Convert.ToInt32(TransactionType.DE_NGHI_XUAT_DIEU_CHUYEN)))
                        {
                            if (chungTuNhapDieuChuyenTgInfo != null)
                            {
                                nhapDieuChuyenTgBussiness =
                                    new NhapDieuChuyenTGBussiness(chungTuNhapDieuChuyenTgInfo)
                                {
                                    ChungTu =
                                    {
                                        TrangThai   = Convert.ToInt32(TrangThaiDieuChuyen.HUY_DIEU_CHUYEN),
                                        LoaiChungTu = -Convert.ToInt32(TransactionType.NHAN_DIEU_CHUYEN_TRUNG_GIAN)
                                    }
                                };

                                frmProgress.Instance.Value += 1;

                                deNghiNhapDieuChuyenTgBussiness =
                                    new DeNghiNhapDieuChuyenTGBussiness(chungTuNhapDieuChuyenTgInfo)
                                {
                                    ChungTu =
                                    {
                                        TrangThai   = Convert.ToInt32(TrangThaiDieuChuyen.HUY_DIEU_CHUYEN),
                                        LoaiChungTu = -Convert.ToInt32(TransactionType.NHAN_DIEU_CHUYEN_TRUNG_GIAN)
                                    }
                                };

                                frmProgress.Instance.Value += 1;
                            }

                            xuatDieuChuyenBussiness =
                                new XuatDieuChuyenBussiness(chungTuXuatDieuChuyenInfo)
                            {
                                ChungTu =
                                {
                                    TrangThai   = Convert.ToInt32(TrangThaiDieuChuyen.HUY_DIEU_CHUYEN),
                                    LoaiChungTu = -Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN)
                                }
                            };

                            frmProgress.Instance.Value += 1;

                            deNghiXuatDieuChuyenBussiness =
                                new DeNghiXuatDieuChuyenBussiness(chungTuXuatDieuChuyenInfo)
                            {
                                ChungTu =
                                {
                                    TrangThai   = Convert.ToInt32(TrangThaiDieuChuyen.HUY_DIEU_CHUYEN),
                                    LoaiChungTu = -Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN)
                                }
                            };

                            frmProgress.Instance.Value += 1;
                        }
                        else if (chungTuXuatDieuChuyenInfo.LoaiChungTu ==
                                 Convert.ToInt32(TransactionType.DE_NGHI_XUAT_DIEU_CHUYEN))
                        {
                            if (chungTuNhapDieuChuyenTgInfo != null)
                            {
                                deNghiNhapDieuChuyenTgBussiness =
                                    new DeNghiNhapDieuChuyenTGBussiness(chungTuNhapDieuChuyenTgInfo)
                                {
                                    ChungTu =
                                    {
                                        TrangThai   = Convert.ToInt32(TrangThaiDieuChuyen.HUY_DIEU_CHUYEN),
                                        LoaiChungTu = -Convert.ToInt32(TransactionType.DE_NGHI_NHAN_DIEU_CHUYEN_TRUNG_GIAN)
                                    }
                                };

                                frmProgress.Instance.Value += 1;
                            }

                            deNghiXuatDieuChuyenBussiness =
                                new DeNghiXuatDieuChuyenBussiness(chungTuXuatDieuChuyenInfo)
                            {
                                ChungTu =
                                {
                                    TrangThai   = Convert.ToInt32(TrangThaiDieuChuyen.HUY_DIEU_CHUYEN),
                                    LoaiChungTu = -Convert.ToInt32(TransactionType.DE_NGHI_XUAT_DIEU_CHUYEN)
                                }
                            };

                            frmProgress.Instance.Value += 1;
                        }
                        try
                        {
                            ConnectionUtil.Instance.BeginTransaction();

                            frmProgress.Instance.MaxValue = 12;

                            //Huy nhan de nghi nhan dieu chuyen

                            if (deNghiNhapDieuChuyenBussiness != null)
                            {
                                businessCloned = deNghiNhapDieuChuyenBussiness.Clone();

                                businessCloned.CancelChungTu();
                            }

                            frmProgress.Instance.Value += 1;

                            //Huy nhan de nghi xuat dieu chuyen trung gian

                            if (deNghiXuatDieuChuyenTgBussiness != null)
                            {
                                businessCloned = deNghiXuatDieuChuyenTgBussiness.Clone();

                                businessCloned.CancelChungTu();
                            }

                            frmProgress.Instance.Value += 1;

                            //Huy nhan dieu chuyen trung gian

                            if (nhapDieuChuyenTgBussiness != null)
                            {
                                businessCloned = nhapDieuChuyenTgBussiness.Clone();

                                businessCloned.CancelChungTu();
                            }

                            frmProgress.Instance.Value += 1;

                            //Huy de nghi nhan dieu chuyen trung gian

                            if (deNghiNhapDieuChuyenTgBussiness != null)
                            {
                                businessCloned = deNghiNhapDieuChuyenTgBussiness.Clone();

                                businessCloned.CancelChungTu();
                            }

                            frmProgress.Instance.Value += 1;

                            //Huy dieu chuyen

                            if (xuatDieuChuyenBussiness != null)
                            {
                                businessCloned = xuatDieuChuyenBussiness.Clone();

                                businessCloned.CancelChungTu();
                            }

                            frmProgress.Instance.Value += 1;

                            //Huy de nghi dieu chuyen

                            if (deNghiXuatDieuChuyenBussiness != null)
                            {
                                businessCloned = deNghiXuatDieuChuyenBussiness.Clone();

                                businessCloned.CancelChungTu();
                            }

                            frmProgress.Instance.Value += 1;

                            ConnectionUtil.Instance.CommitTransaction();
                        }
                        catch (Exception)
                        {
                            ConnectionUtil.Instance.RollbackTransaction();
                            throw;
                        }

                        //ConnectionUtil.Instance.DoSerializableWorkInTransaction(
                        //    delegate
                        //    {
                        //        frmProgress.Instance.MaxValue = 12;

                        //        //Huy nhan de nghi nhan dieu chuyen

                        //        if (deNghiNhapDieuChuyenBussiness != null)
                        //        {
                        //            businessCloned = deNghiNhapDieuChuyenBussiness.Clone();

                        //            businessCloned.CancelChungTu();

                        //        }

                        //        frmProgress.Instance.Value += 1;

                        //        //Huy nhan de nghi xuat dieu chuyen trung gian

                        //        if (deNghiXuatDieuChuyenTgBussiness != null)
                        //        {
                        //            businessCloned = deNghiXuatDieuChuyenTgBussiness.Clone();

                        //            businessCloned.CancelChungTu();
                        //        }

                        //        frmProgress.Instance.Value += 1;

                        //        //Huy nhan dieu chuyen trung gian

                        //        if (nhapDieuChuyenTgBussiness != null)
                        //        {
                        //            businessCloned = nhapDieuChuyenTgBussiness.Clone();

                        //            businessCloned.CancelChungTu();
                        //        }

                        //        frmProgress.Instance.Value += 1;

                        //        //Huy de nghi nhan dieu chuyen trung gian

                        //        if (deNghiNhapDieuChuyenTgBussiness != null)
                        //        {
                        //            businessCloned = deNghiNhapDieuChuyenTgBussiness.Clone();

                        //            businessCloned.CancelChungTu();
                        //        }

                        //        frmProgress.Instance.Value += 1;

                        //        //Huy dieu chuyen

                        //        if (xuatDieuChuyenBussiness != null)
                        //        {
                        //            businessCloned = xuatDieuChuyenBussiness.Clone();

                        //            businessCloned.CancelChungTu();
                        //        }

                        //        frmProgress.Instance.Value += 1;

                        //        //Huy de nghi dieu chuyen

                        //        if (deNghiXuatDieuChuyenBussiness != null)
                        //        {
                        //            businessCloned = deNghiXuatDieuChuyenBussiness.Clone();

                        //            businessCloned.CancelChungTu();
                        //        }

                        //        frmProgress.Instance.Value += 1;

                        //    });

                        frmProgress.Instance.Value += 1;

                        if (chungTuNhapDieuChuyenInfo != null)
                        {
                            CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuNhapDieuChuyenInfo, 0);
                        }

                        frmProgress.Instance.Value += 1;

                        CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuXuatDieuChuyenInfo, 0);

                        frmProgress.Instance.Value += 1;

                        frmProgress.Instance.Description = "Đã xong!";

                        frmProgress.Instance.Value = frmProgress.Instance.MaxValue;

                        frmProgress.Instance.IsCompleted = true;
                    }
                    catch (Exception ex)
                    {
                        innerException = ex;

                        frmProgress.Instance.Description = "Không hoàn thành!";

                        frmProgress.Instance.Value = frmProgress.Instance.MaxValue;

                        frmProgress.Instance.IsCompleted = true;
                    }
                });

                if (innerException != null)
                {
                    throw innerException;
                }

                return(true);
            }
            catch (ManagedException ex)
            {
                try
                {
                    if (chungTuNhapDieuChuyenInfo != null)
                    {
                        CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuNhapDieuChuyenInfo, 0);
                    }

                    if (chungTuXuatDieuChuyenInfo != null)
                    {
                        CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuXuatDieuChuyenInfo, 0);
                    }
                }
                catch (Exception) { }

                MessageBox.Show(ex.Message);

                return(false);
            }
            catch (Exception ex)
            {
                try
                {
                    if (chungTuNhapDieuChuyenInfo != null)
                    {
                        CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuNhapDieuChuyenInfo, 0);
                    }

                    if (chungTuXuatDieuChuyenInfo != null)
                    {
                        CommonProvider.Instance.Lock_Unlock_ChungTu(chungTuXuatDieuChuyenInfo, 0);
                    }
                }
                catch (Exception) { }

                EventLogProvider.Instance.WriteOfflineLog(ex.ToString(), this.Name);


#if DEBUG
                MessageBox.Show(ex.ToString());
#else
                MessageBox.Show(ex.Message);
#endif
                return(false);
            }
        }