private LICHSUBANHANG GetLichSuBanHang()
        {
            LICHSUBANHANG lichsu = new LICHSUBANHANG();

            lichsu.BanHangID  = this.BANHANG.BanHangID;
            lichsu.NhanVienID = mTransit.NhanVien.NhanVienID;
            if (lichsu.NhanVienID == 0)
            {
                lichsu.NhanVienID = null;
            }
            lichsu.NgayBan  = DateTime.Now;
            lichsu.InNhaBep = false;
            return(lichsu);
        }
        private CHITIETLICHSUBANHANG GetChiTietLichSuBanHang(BOChiTietBanHang item, LICHSUBANHANG lichsu)
        {
            CHITIETLICHSUBANHANG chitiet = new CHITIETLICHSUBANHANG();

            chitiet.LichSuBanHangID  = lichsu.LichSuBanHangID;
            chitiet.KichThuocMonID   = item.ChiTietBanHang.KichThuocMonID;
            chitiet.SoLuong          = item.ChiTietBanHang.SoLuongBan;
            chitiet.ThanhTien        = item.ChiTietBanHang.ThanhTien;
            chitiet.GiaBan           = item.ChiTietBanHang.GiaBan;
            chitiet.GiamGia          = item.ChiTietBanHang.GiamGia;
            chitiet.KichThuocLoaiBan = item.ChiTietBanHang.KichThuocLoaiBan;
            chitiet.TrangThai        = 0;
            return(chitiet);
        }
        public int GuiNhaBep()
        {
            LICHSUBANHANG lichsu = GetLichSuBanHang();

            if (this.BANHANG.BanHangID == 0)
            {
                mTransit.ThamSo.ThuTuMaHoaDon++;
                mTransit.KaraokeEntities.SaveChanges();

                mKaraokeEntities.BANHANGs.AddObject(this.BANHANG);
                this.BANHANG.LICHSUBANHANGs.Add(lichsu);
                foreach (BOChiTietBanHang item in _ListChiTietBanHang)
                {
                    CHITIETLICHSUBANHANG chitiet = GetChiTietLichSuBanHang(item, lichsu);
                    lichsu.CHITIETLICHSUBANHANGs.Add(chitiet);
                    this.BANHANG.CHITIETBANHANGs.Add(item.ChiTietBanHang);
                    foreach (var km in item._ListKhuyenMai)
                    {
                        CHITIETLICHSUBANHANG kmChiTiet = GetChiTietLichSuBanHang(km, lichsu);
                        kmChiTiet.KichThuocMonID_Ref         = chitiet.KichThuocMonID;
                        km.ChiTietBanHang.KichThuocMonID_Ref = item.ChiTietBanHang.KichThuocMonID;
                        item.ChiTietBanHang.CHITIETBANHANG1.Add(km.ChiTietBanHang);
                        chitiet.CHITIETLICHSUBANHANG1.Add(kmChiTiet);
                        //km.ChangeQtyChiTietBanHang(item.ChiTietBanHang.SoLuongBan);
                        km.ChangeQtyChiTietLichSuBanHang(kmChiTiet, chitiet.SoLuong);
                        this.BANHANG.CHITIETBANHANGs.Add(km.ChiTietBanHang);
                        lichsu.CHITIETLICHSUBANHANGs.Add(kmChiTiet);
                    }
                }
            }
            else
            {
                if (KiemTraThayDoiLichSu())
                {
                    this.BANHANG.LICHSUBANHANGs.Add(lichsu);
                    foreach (BOChiTietBanHang item in _ListChiTietBanHang)
                    {
                        CHITIETLICHSUBANHANG chitiet = GetChiTietLichSuBanHang(item, lichsu);
                        if (item.ChiTietBanHang.ChiTietBanHangID == 0)
                        {
                            item.ChangeQtyChiTietLichSuBanHang(chitiet, (int)chitiet.SoLuong);
                            this.BANHANG.CHITIETBANHANGs.Add(item.ChiTietBanHang);
                            lichsu.CHITIETLICHSUBANHANGs.Add(chitiet);
                            foreach (var km in item._ListKhuyenMai)
                            {
                                CHITIETLICHSUBANHANG kmChiTiet = GetChiTietLichSuBanHang(km, lichsu);
                                kmChiTiet.KichThuocMonID_Ref         = chitiet.KichThuocMonID;
                                km.ChiTietBanHang.KichThuocMonID_Ref = item.ChiTietBanHang.KichThuocMonID;
                                km.ChangeQtyChiTietLichSuBanHang(kmChiTiet, chitiet.SoLuong);
                                item.ChiTietBanHang.CHITIETBANHANG1.Add(km.ChiTietBanHang);
                                chitiet.CHITIETLICHSUBANHANG1.Add(kmChiTiet);
                                this.BANHANG.CHITIETBANHANGs.Add(km.ChiTietBanHang);
                                lichsu.CHITIETLICHSUBANHANGs.Add(kmChiTiet);
                            }
                        }
                        else if (item.SoLuongBanTam != item.ChiTietBanHang.SoLuongBan)
                        {
                            item.ChangeQtyChiTietLichSuBanHang(chitiet, item.ChiTietBanHang.SoLuongBan - item.SoLuongBanTam);
                            lichsu.CHITIETLICHSUBANHANGs.Add(chitiet);
                            foreach (var km in item._ListKhuyenMai)
                            {
                                CHITIETLICHSUBANHANG kmChiTiet = GetChiTietLichSuBanHang(km, lichsu);
                                kmChiTiet.KichThuocMonID_Ref         = chitiet.KichThuocMonID;
                                km.ChiTietBanHang.KichThuocMonID_Ref = item.ChiTietBanHang.KichThuocMonID;

                                km.ChangeQtyChiTietLichSuBanHang(kmChiTiet, chitiet.SoLuong);
                                chitiet.CHITIETLICHSUBANHANG1.Add(kmChiTiet);
                                lichsu.CHITIETLICHSUBANHANGs.Add(kmChiTiet);
                            }
                        }
                    }
                    foreach (BOChiTietBanHang item in mListChiTietBanHangDeleted)
                    {
                        if (item.ChiTietBanHang.ChiTietBanHangID > 0)
                        {
                            CHITIETLICHSUBANHANG chitiet = GetChiTietLichSuBanHang(item, lichsu);
                            item.ChangeQtyChiTietLichSuBanHang(chitiet, 0 - (int)chitiet.SoLuong);
                            lichsu.CHITIETLICHSUBANHANGs.Add(chitiet);
                            foreach (var km in item._ListKhuyenMai)
                            {
                                CHITIETLICHSUBANHANG kmChiTiet = GetChiTietLichSuBanHang(km, lichsu);
                                //km.ChangeQtyChiTietBanHang(item.ChiTietBanHang.SoLuongBan);
                                km.ChangeQtyChiTietLichSuBanHang(kmChiTiet, chitiet.SoLuong);
                                chitiet.CHITIETLICHSUBANHANG1.Add(kmChiTiet);
                                lichsu.CHITIETLICHSUBANHANGs.Add(kmChiTiet);
                                mKaraokeEntities.CHITIETBANHANGs.DeleteObject(km.ChiTietBanHang);
                            }
                            mKaraokeEntities.CHITIETBANHANGs.DeleteObject(item.ChiTietBanHang);
                        }
                    }
                    mListChiTietBanHangDeleted.Clear();
                }
            }
            mKaraokeEntities.SaveChanges();
            return(lichsu.LichSuBanHangID);
        }