Beispiel #1
0
        public async Task <IHttpActionResult> Put(string id, NvPhieuDatHangVm.Dto instance)
        {
            var result = new TransferObj <NvDatHang>();
            var check  = _service.FindById(instance.Id);

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (check == null)
            {
                return(NotFound());
            }
            if (id != instance.Id || check.TrangThai == (int)OrderState.IsComplete)
            {
                return(BadRequest());
            }

            try
            {
                var item = _service.UpdatePhieu(instance);
                _service.UnitOfWork.Save();
                result.Status = true;
                result.Data   = item;
                return(Ok(result));
            }
            catch (Exception e)
            {
                return(InternalServerError());
            }
        }
Beispiel #2
0
        public async Task <IHttpActionResult> PostConfirm(NvPhieuDatHangVm.Dto instance)
        {
            var chungTu = _service.FindById(instance.Id);

            if (chungTu == null)
            {
                return(NotFound());
            }
            if (chungTu.TrangThai == (int)TrangThaiDonHang.DAXACNHAN)
            {
                return(BadRequest("Đơn này đã được duyệt!"));
            }
            chungTu.TrangThai = (int)TrangThaiDonHang.DAXACNHAN;
            chungTu.Ngay      = DateTime.Now;
            {
                var details = _service.UnitOfWork.Repository <NvDatHangChiTiet>().DbSet.Where(x => x.SoPhieu == chungTu.SoPhieu).ToList();
                if (details.Count != instance.DataDetails.Count)
                {
                    return(Ok(false));                                             // trường hợp cố tình sửa đổi không giống như hợp đồng
                }
                foreach (var item in instance.DataDetails)
                {
                    var itemNew = details.FirstOrDefault(u => u.Id == item.Id);
                    if (itemNew == null)
                    {
                        return(Ok(false));                 //trường hợp trong danh sách không hợp lệ
                    }
                    //itemNew.SoLuong = itemNew.SoLuongDuyet = item.SoLuongDuyet;
                    //itemNew.DonGia = itemNew.DonGiaDuyet = item.DonGiaDuyet;
                    //itemNew.ThanhTien = item.SoLuongDuyet * item.DonGiaDuyet;
                    //itemNew.ObjectState = ObjectState.Modified;
                }
            }
            chungTu.ObjectState = ObjectState.Modified;
            try
            {
                _service.UnitOfWork.Save();
                return(Ok(true));
            }
            catch (Exception e)
            {
                return(InternalServerError());
            }
        }
Beispiel #3
0
        public async Task <IHttpActionResult> Post(NvPhieuDatHangVm.Dto instance)
        {
            var result = new TransferObj <NvDatHang>();

            try
            {
                var item = _service.InsertPhieu(instance);
                _service.UnitOfWork.Save();
                result.Data   = item;
                result.Status = true;
                return(CreatedAtRoute("DefaultApi", new { controller = this, id = instance.Id }, result));
            }
            catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
                return(Ok(result));
            }
        }
Beispiel #4
0
        public async Task <IHttpActionResult> GetDetails(string id)
        {
            var result = new TransferObj <NvPhieuDatHangVm.Dto>();
            var temp   = new NvPhieuDatHangVm.Dto();

            var phieu = _service.FindById(id);

            if (phieu != null)
            {
                temp = Mapper.Map <NvDatHang, NvPhieuDatHangVm.Dto>(phieu);
                var khachhang = _service.UnitOfWork.Repository <MdCustomer>().DbSet.FirstOrDefault(x => x.DienThoai == phieu.MaKhachHang);
                if (khachhang != null)
                {
                    temp.SdtKhachHang = khachhang.DienThoai;
                    temp.DiaChiKH     = khachhang.DiaChi;
                    temp.EmailKH      = khachhang.Email;
                }
                var nhanvien = _service.UnitOfWork.Repository <AU_NGUOIDUNG>().DbSet.FirstOrDefault(x => x.MaNhanVien == phieu.MaNhanVien);
                if (nhanvien != null)
                {
                    temp.MaNhanVien = nhanvien.MaNhanVien;
                    temp.TenNql     = nhanvien.MaNhanVien + " - " + nhanvien.TenNhanVien;
                    temp.SdtNql     = nhanvien.SoDienThoai;
                }

                var chiTietDatHang = _service.UnitOfWork.Repository <NvDatHangChiTiet>().DbSet.Where(x => x.SoPhieuPk == phieu.SoPhieuPk).ToList();
                temp.DataDetails = Mapper.Map <List <NvDatHangChiTiet>, List <NvPhieuDatHangVm.DtoDetail> >(chiTietDatHang);
                foreach (var item in temp.DataDetails)
                {
                    item.DefaultApproval();
                }
                //temp.SoPhieuDatHang = temp.SoPhieuPk;
                result.Data   = temp;
                result.Status = true;
                return(Ok(result));
            }
            return(NotFound());
        }
Beispiel #5
0
        public async Task <IHttpActionResult> GetDetailComplete(string id)
        {
            var result = new TransferObj <NvPhieuDatHangVm.Dto>();
            var temp   = new NvPhieuDatHangVm.Dto();
            var phieu  = _service.FindById(id);

            if (phieu != null)
            {
                temp = Mapper.Map <NvDatHang, NvPhieuDatHangVm.Dto>(phieu);
                var hopDong = _service.UnitOfWork.Repository <MdContract>().DbSet.FirstOrDefault(x => x.MaHd == phieu.MaHd);
                if (hopDong != null)
                {
                    temp.MaKhachHang = hopDong.KhachHang;
                }
                var tb_datHangChiTiet = _service.UnitOfWork.Repository <NvDatHangChiTiet>().DbSet;

                var chiTietDatHang = tb_datHangChiTiet.Where(x => x.SoPhieu == phieu.SoPhieu).ToList();
                temp.DataDetails = Mapper.Map <List <NvDatHangChiTiet>, List <NvPhieuDatHangVm.DtoDetail> >(chiTietDatHang);
                result.Data      = temp;
                result.Status    = true;
                return(Ok(result));
            }
            return(NotFound());
        }