//public List<ChungTuXuatTieuHaoInfor> GetListDeNghiXuatTieuHao()
        //{
        //    return GetListCommand<ChungTuXuatTieuHaoInfor>(Declare.StoreProcedureNamespace.spKhoChungTuGetByLoaiChungTu, Convert.ToInt32(TransactionType.DE_NGHI_TIEU_HAO), Declare.IdKho);
        //}

        public void UpdateChiTietChungTu(DeNghiNhanDieuChuyenInfor chiTietChungTu)
        {
            ExecuteCommand(Declare.StoreProcedureNamespace.spChungTuChiTietXTHUpdate, chiTietChungTu.IdChungTuChiTiet,
                           chiTietChungTu.IdChungTu,
                           chiTietChungTu.IdSanPham,
                           chiTietChungTu.SoLuong,
                           chiTietChungTu.DonGia,
                           chiTietChungTu.Thanhtien);
        }
 public int InsertChiTietChungTu(DeNghiNhanDieuChuyenInfor deNghiNhanDieuChuyenInfor)
 {
     ExecuteCommand(Declare.StoreProcedureNamespace.spChungTuChiTietDNXTHInsert,
                    deNghiNhanDieuChuyenInfor.IdChungTuChiTiet,
                    deNghiNhanDieuChuyenInfor.IdChungTu,
                    deNghiNhanDieuChuyenInfor.IdSanPham,
                    deNghiNhanDieuChuyenInfor.SoLuong,
                    deNghiNhanDieuChuyenInfor.DonGia,
                    deNghiNhanDieuChuyenInfor.Thanhtien);
     return(Convert.ToInt32(Parameters["p_IdChiTiet"].Value.ToString()));
 }
 public void DeleteChiTietChungTu(DeNghiNhanDieuChuyenInfor deNghiNhanDieuChuyenInfor)
 {
     ExecuteCommand(Declare.StoreProcedureNamespace.spCtCtDelByIdCtCt, deNghiNhanDieuChuyenInfor.IdChungTuChiTiet);
 }
        private void XoaLine_Click(object sender, EventArgs e)
        {
            try
            {
                string soChungTuXuat =
                    ((BCChiTietHangChuyenKhoInfo)grvBCNhanChuyenKho.GetRow(grvBCNhanChuyenKho.FocusedRowHandle)).
                    SoPhieuXuat;

                string soChungTuNhan =
                    ((BCChiTietHangChuyenKhoInfo)grvBCNhanChuyenKho.GetRow(grvBCNhanChuyenKho.FocusedRowHandle)).
                    SoPhieuNhan;

                string maVach =
                    ((BCChiTietHangChuyenKhoInfo)grvBCNhanChuyenKho.GetRow(grvBCNhanChuyenKho.FocusedRowHandle)).
                    MaVach;

                string maSanPham =
                    ((BCChiTietHangChuyenKhoInfo)grvBCNhanChuyenKho.GetRow(grvBCNhanChuyenKho.FocusedRowHandle)).
                    MaSanPham;

                int idSanPham =
                    QLBanHang.Modules.DanhMuc.Providers.DmSanPhamProvider.Instance.GetSanPhamByMa(maSanPham).IdSanPham;

                if (MessageBox.Show("Bạn có chắc chắn xóa không?", "Xác nhận xóa mã vạch", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    return;
                }

                ConnectionUtil.Instance.BeginTransaction();

                ChungTuDieuChuyenInfor infoXuat =
                    tblChungTuDataProvider.GetChungTuBySoChungTu <ChungTuDieuChuyenInfor>(soChungTuXuat);

                if (!String.IsNullOrEmpty(soChungTuNhan))
                {
                    ChungTuNhapDieuChuyenInfor infoNhap =
                        tblChungTuDataProvider.GetChungTuBySoChungTu <ChungTuNhapDieuChuyenInfor>(soChungTuNhan);

                    NhanDieuChuyenBussiness       nhanDieuChuyenBussiness = new NhanDieuChuyenBussiness(infoNhap);
                    DeNghiNhanDieuChuyenBussiness deNghiNhanDieuChuyenBussiness;
                    if (nhanDieuChuyenBussiness.ListChiTietHangHoa.Count > 0)
                    {
                        ChungTu_ChiTietHangHoaBaseInfo chiTietHangHoaBaseInfo =
                            nhanDieuChuyenBussiness.ListChiTietHangHoa.Find(delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                        {
                            return(match.MaVach == maVach &&
                                   match.IdSanPham == idSanPham);
                        });

                        ChungTu_ChiTietInfo chungTuChiTietInfo =
                            nhanDieuChuyenBussiness.ListChiTietChungTu.Find(delegate(ChungTu_ChiTietInfo match)
                        {
                            return(match.IdSanPham == idSanPham);
                        });

                        nhanDieuChuyenBussiness.ListChiTietHangHoa.Remove(chiTietHangHoaBaseInfo);

                        if (chiTietHangHoaBaseInfo.SoLuong == chungTuChiTietInfo.SoLuong)
                        {
                            nhanDieuChuyenBussiness.ListChiTietChungTu.Remove(chungTuChiTietInfo);
                        }
                        else
                        {
                            chungTuChiTietInfo.SoLuong -= chiTietHangHoaBaseInfo.SoLuong;
                        }

                        nhanDieuChuyenBussiness.SaveChungTu();

                        deNghiNhanDieuChuyenBussiness = new DeNghiNhanDieuChuyenBussiness(infoNhap);

                        DeNghiNhanDieuChuyenInfor deNghiNhanDieuChuyenInfor = deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Find(
                            delegate(DeNghiNhanDieuChuyenInfor match)
                        {
                            return(match.IdSanPham == idSanPham);
                        });

                        if (chiTietHangHoaBaseInfo.SoLuong == deNghiNhanDieuChuyenInfor.SoLuong)
                        {
                            deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Remove(deNghiNhanDieuChuyenInfor);
                        }
                        else
                        {
                            deNghiNhanDieuChuyenInfor.SoLuong -= chiTietHangHoaBaseInfo.SoLuong;
                        }

                        deNghiNhanDieuChuyenBussiness.SaveChungTu();
                    }
                    else
                    {
                        deNghiNhanDieuChuyenBussiness = new DeNghiNhanDieuChuyenBussiness(infoNhap);

                        DeNghiNhanDieuChuyenInfor deNghiNhanDieuChuyenInfor = deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Find(
                            delegate(DeNghiNhanDieuChuyenInfor match)
                        {
                            return(match.IdSanPham == idSanPham);
                        });

                        deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Remove(deNghiNhanDieuChuyenInfor);

                        deNghiNhanDieuChuyenBussiness.SaveChungTu();
                    }
                }

                XuatDieuChuyenBusiness    xuatDieuChuyenBusiness = new XuatDieuChuyenBusiness(infoXuat);
                DeNghiDieuChuyenBussiness deNghiDieuChuyenBussiness;

                if (xuatDieuChuyenBusiness.ListChiTietHangHoa.Count > 0)
                {
                    ChungTu_ChiTietInfo chungTuChiTietInfo =
                        xuatDieuChuyenBusiness.ListChiTietChungTu.Find(delegate(ChungTu_ChiTietInfo match)
                    {
                        return(match.IdSanPham == idSanPham);
                    });

                    ChungTu_ChiTietHangHoaBaseInfo chiTietHangHoaBaseInfo =
                        xuatDieuChuyenBusiness.ListChiTietHangHoa.Find(delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                    {
                        return(match.MaVach == maVach &&
                               match.IdSanPham == idSanPham);
                    });

                    xuatDieuChuyenBusiness.ListChiTietHangHoa.Remove(chiTietHangHoaBaseInfo);

                    if (chiTietHangHoaBaseInfo.SoLuong == chungTuChiTietInfo.SoLuong)
                    {
                        xuatDieuChuyenBusiness.ListChiTietChungTu.Remove(chungTuChiTietInfo);
                    }
                    else
                    {
                        chungTuChiTietInfo.SoLuong -= chiTietHangHoaBaseInfo.SoLuong;
                    }

                    xuatDieuChuyenBusiness.SaveChungTu();

                    deNghiDieuChuyenBussiness = new DeNghiDieuChuyenBussiness(infoXuat);

                    DeNghiDieuChuyenInfor deNghiDieuChuyenInfor = deNghiDieuChuyenBussiness.ListChiTietChungTu.Find(
                        delegate(DeNghiDieuChuyenInfor match)
                    {
                        return(match.IdSanPham == idSanPham);
                    });

                    if (chiTietHangHoaBaseInfo.SoLuong == deNghiDieuChuyenInfor.SoLuong)
                    {
                        deNghiDieuChuyenBussiness.ListChiTietChungTu.Remove(deNghiDieuChuyenInfor);
                    }
                    else
                    {
                        deNghiDieuChuyenInfor.SoLuong -= chiTietHangHoaBaseInfo.SoLuong;
                    }

                    deNghiDieuChuyenBussiness.SaveChungTu();
                }

                ConnectionUtil.Instance.CommitTransaction();

                //grcBCNhanChuyenKho.DataSource = XuatDieuChuyenDataProvider.Instance.GetBCChiTietChuyenKho(MaTrungTam, MaKho, Convert.ToDateTime(deFrom.EditValue), Convert.ToDateTime(deTo.EditValue));
            }
            catch (Exception ex)
            {
                ConnectionUtil.Instance.RollbackTransaction();
#if DEBUG
                MessageBox.Show(ex.ToString());
#else
                MessageBox.Show(ex.Message);
#endif
            }
        }
        protected override void SaveChungTuInstance()
        {
            if (Check())
            {
                base.SaveChungTuInstance();
                chungTuInfo.NgayLap = Convert.ToDateTime(dtNgayLap.Text);

                business.ChungTu = chungTuInfo;

                //nếu thêm mới
                if (chungTuInfo.IdChungTu == 0)
                {
                    business.ChungTu.LoaiChungTu = Convert.ToInt32(TransactionType.DE_NGHI_XUAT_DIEU_CHUYEN);
                }

                if (CheckCungTrungTam())
                {
                    ChungTuNhapDieuChuyenInfor chungTuNhapDieuChuyenInfor = DeNghiNhanDieuChuyenDataProvider.Instance.GetChungTuNhanDCBySoCTGoc(chungTuInfo.SoChungTu);

                    if (chungTuNhapDieuChuyenInfor == null)
                    {
                        deNghiNhanDieuChuyenBussiness = new DeNghiNhanDieuChuyenBussiness(new ChungTuNhapDieuChuyenInfor
                        {
                            //detail của phiếu đề nghị nhận điều chuyển
                            LoaiChungTu    = Convert.ToInt32(TransactionType.DE_NGHI_NHAN_DIEU_CHUYEN),
                            IdChungTu      = OID,
                            IdNhanVien     = Declare.IdNhanVien,
                            SoChungTu      = SoPhieuNhanDC,
                            SoChungTuGoc   = txtSoPhieu.Text.Trim(),
                            GhiChu         = txtGhiChu.Text.Trim(),
                            NgayLap        = Convert.ToDateTime(dtNgayLap.EditValue, new CultureInfo("vi-VN")),
                            IdKho          = chungTuInfo.IdKhoDieuChuyen,
                            HoaDonDC       = chungTuInfo.HoaDonDC,
                            PhuongTien     = chungTuInfo.PhuongTien,
                            IdNguoiUyNhiem = chungTuInfo.IdNguoiUyNhiem,
                            IdNguoiVC      = chungTuInfo.IdNguoiVC,
                            IdNguoiKyDuyet = chungTuInfo.IdNguoiKyDuyet
                        });
                    }
                    else
                    {
                        deNghiNhanDieuChuyenBussiness = new DeNghiNhanDieuChuyenBussiness(chungTuNhapDieuChuyenInfor);
                    }

                    deNghiNhanDieuChuyenBussiness.ChungTu.NgayLap = Convert.ToDateTime(dtNgayLap.Text);

                    foreach (DeNghiDieuChuyenInfor deNghiDieuChuyenInfor in business.ListChiTietChungTu)
                    {
                        DeNghiNhanDieuChuyenInfor deNghiNhanDieuChuyenInfor =
                            deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Find(
                                delegate(DeNghiNhanDieuChuyenInfor match)
                        {
                            return(match.IdSanPham == deNghiDieuChuyenInfor.IdSanPham);
                        });

                        if (deNghiNhanDieuChuyenInfor != null)
                        {
                            deNghiNhanDieuChuyenInfor.SoLuong   = deNghiDieuChuyenInfor.SoLuong;
                            deNghiNhanDieuChuyenInfor.DonGia    = deNghiDieuChuyenInfor.DonGia;
                            deNghiNhanDieuChuyenInfor.Thanhtien = deNghiDieuChuyenInfor.Thanhtien;
                        }
                        else
                        {
                            deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Add(
                                new DeNghiNhanDieuChuyenInfor
                            {
                                IdSanPham  = deNghiDieuChuyenInfor.IdSanPham,
                                SoLuong    = deNghiDieuChuyenInfor.SoLuong,
                                MaSanPham  = deNghiDieuChuyenInfor.MaSanPham,
                                TenSanPham = deNghiDieuChuyenInfor.TenSanPham,
                                DonGia     = deNghiDieuChuyenInfor.DonGia,
                                Thanhtien  = deNghiDieuChuyenInfor.Thanhtien,
                            });
                        }
                    }

                    if (deNghiNhanDieuChuyenBussiness.ChungTu.IdChungTu == 0)
                    {
                        deNghiNhanDieuChuyenBussiness.ChungTu.TrangThai = Convert.ToInt32(TrangThaiDieuChuyen.CHO_THUKHO_XUAT);
                    }

                    deNghiNhanDieuChuyenBussiness.SaveChungTu();

                    business.ChungTu.TrangThai = Convert.ToInt32(TrangThaiDieuChuyen.CHO_THUKHO_XUAT);
                }
            }
        }