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()); } }
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()); } }
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)); } }
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()); }
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()); }