Example #1
0
        public override bool SaveData()
        {
            var validateResult = ValidateInput();

            if (!string.IsNullOrEmpty(validateResult))
            {
                MessageBox.Show(validateResult, "Không hợp lệ.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            var ghichu        = ThanhToanCongNo_GhiChu.Text;
            var ngayThanhToan = ThanhToanCongNo_NgayThanhToan.Value;
            var khachHangId   = _domainData.Id;

            using (var transaction = new TransactionScope())
            {
                foreach (var congNo in _congNoes)
                {
                    if (congNo.ThanhToanNo > 0)
                    {
                        var thanhToanCongNo = new ThanhToanCongNo();
                        thanhToanCongNo.ThanhToan     = congNo.ThanhToanNo;
                        thanhToanCongNo.KhachHangId   = khachHangId;
                        thanhToanCongNo.NgayThanhToan = ngayThanhToan;
                        thanhToanCongNo.GhiChu        = ghichu;
                        thanhToanCongNo.CongNoId      = congNo.Id;
                        CRUD.DecorateSaveData(thanhToanCongNo);
                        CRUD.DbContext.ThanhToanCongNoes.AddOrUpdate(thanhToanCongNo);

                        congNo.ThanhToan  += congNo.ThanhToanNo;
                        congNo.ThanhToanNo = 0;

                        CRUD.DecorateSaveData(congNo);
                        CRUD.DbContext.CongNoes.AddOrUpdate(congNo);
                    }
                }
                CRUD.DbContext.SaveChanges();
                transaction.Complete();
            }
            ReturnObject = _domainData;

            return(true);
        }
Example #2
0
        public override bool SaveData()
        {
            var validateResult = ValidateInput();

            if (!string.IsNullOrEmpty(validateResult))
            {
                MessageBox.Show(validateResult);
                return(false);
            }

            // Save Don Hang
            CRUD.DecorateSaveData(_domainData);

            using (var transaction = new TransactionScope())
            {
                if (_domainData.Id > 0)
                {
                    // Remove chi tiet don hang cu
                    DeleteChiTietDonHang(_domainData);
                    CRUD.DbContext.DonHangs.AddOrUpdate(_domainData);
                }

                CRUD.DbContext.SaveChanges();

                // Save chi tiet Don Hang
                foreach (var chiTietDonHang in _chiTietDonhang)
                {
                    CRUD.DecorateSaveData(chiTietDonHang);
                    chiTietDonHang.DonHangId = _domainData.Id;
                    CRUD.DbContext.ChiTietDonHangs.AddOrUpdate(chiTietDonHang);
                    CRUD.DbContext.SaveChanges();

                    // Cap nhat hang trong kho
                    var hangHoa = CRUD.DbContext.KhoHangs.Find(chiTietDonHang.HangHoaId);
                    if (hangHoa != null)
                    {
                        if (_loaiDonHang == Define.LoaiDonHangEnum.NhapKho)
                        {
                            hangHoa.SoLuong += chiTietDonHang.SoLuong;
                        }
                        else
                        {
                            hangHoa.SoLuong -= chiTietDonHang.SoLuong;
                        }
                        CRUD.DbContext.KhoHangs.AddOrUpdate(hangHoa);
                    }

                    // Save chi tiet hang hoa
                    foreach (var chiTietHangHoa in chiTietDonHang.ListChiTietHangHoa)
                    {
                        CRUD.DecorateSaveData(chiTietHangHoa);
                        chiTietHangHoa.ChiTietDonHangId = chiTietDonHang.Id;
                        CRUD.DbContext.ChiTietHangHoas.AddOrUpdate(chiTietHangHoa);
                    }
                }

                // Save cong no neu co
                var congNo = (long)DonHang_No.EditValue;
                if (congNo > 0)
                {
                    // Add Cong no moi
                    var congNoHienTai = new CongNo();
                    if (_domainData != null && _domainData.CongNoes.FirstOrDefault() != null)
                    {
                        congNoHienTai    = _domainData.CongNoes.FirstOrDefault();
                        congNoHienTai.No = congNoHienTai.NoDonHang - congNoHienTai.DaThanhToan;
                    }
                    else
                    {
                        congNoHienTai.No = Math.Abs(congNo);
                    }
                    CRUD.DecorateSaveData(congNoHienTai);
                    congNoHienTai.DonHangId   = _domainData.Id;
                    congNoHienTai.KhachHangId = _domainData.KhachHangId;
                    congNoHienTai.NgayLap     = _domainData.NgayLap;
                    congNoHienTai.LoaiDonHang = _domainData.LoaiDonHang;
                    congNoHienTai.GhiChu      = _domainData.GhiChu;
                    CRUD.DbContext.CongNoes.AddOrUpdate(congNoHienTai);
                    CRUD.DbContext.SaveChanges();

                    // Add chi tiet thanh toanh
                    if (_domainData.ThanhToan > 0)
                    {
                        var thanhToan = new ThanhToanCongNo();
                        CRUD.DecorateSaveData(thanhToan);
                        thanhToan.CongNoId      = congNoHienTai.Id;
                        thanhToan.ThanhToan     = _domainData.ThanhToan;
                        thanhToan.NgayThanhToan = _domainData.NgayLap;
                        CRUD.DbContext.ThanhToanCongNoes.AddOrUpdate(thanhToan);
                    }
                }
                CRUD.DbContext.SaveChanges();
                transaction.Complete();
            }

            var confirmDialog = MessageBox.Show(Define.MESSAGE_IN_HOA_DON, Define.MESSAGE_IN_HOA_DON_TITLE, MessageBoxButtons.YesNo);

            if (confirmDialog == DialogResult.Yes)
            {
                InHoaDon();
            }

            return(true);
        }