public async Task <IHttpActionResult> GetDetails(string id) { var _ParentUnitCode = _service.GetParentUnitCode(); var result = new TransferObj <NvXuatKhacVm.Dto>(); var temp = new NvXuatKhacVm.Dto(); var phieu = _service.FindById(id); if (phieu != null) { temp = Mapper.Map <NvVatTuChungTu, NvXuatKhacVm.Dto>(phieu); var chiTietPhieu = _service.UnitOfWork.Repository <NvVatTuChungTuChiTiet>().DbSet.Where(x => x.MaChungTuPk == phieu.MaChungTuPk).ToList(); temp.DataDetails = Mapper.Map <List <NvVatTuChungTuChiTiet>, List <NvXuatKhacVm.DtoDetail> >(chiTietPhieu); temp.DataDetails.ForEach( x => { x.CalcResult(); x.GiaVon = x.GiaVon; } ); if (phieu.TrangThai != 10) { decimal sum = 0; List <NvXuatKhacVm.DtoDetail> listDetails = new List <NvXuatKhacVm.DtoDetail>(); var unitCode = _service.GetCurrentUnitCode(); var ky = CurrentSetting.GetKhoaSo(unitCode); var tableName = ProcedureCollection.GetTableName(ky.Year, ky.Period); var MaKho = temp.MaKhoXuat; decimal giaVon = 0; //string kyKeToan = _servicePeriod.GetKyKeToan((DateTime)phieu.NgayCT); foreach (var value in temp.DataDetails) { var sp = _service.UnitOfWork.Repository <MdMerchandisePrice>().DbSet.Where(x => x.MaVatTu.Equals(value.MaHang) && x.MaDonVi.StartsWith(_ParentUnitCode)).FirstOrDefault(); var item = _service.UnitOfWork.Repository <MdMerchandise>().DbSet.Where(x => x.MaVatTu.Equals(value.MaHang) && x.UnitCode.StartsWith(_ParentUnitCode)).FirstOrDefault(); if (sp != null) { value.TyLeVATVao = sp.TyLeVatVao; } if (item != null) { value.TenHang = item.TenHang; } List <MdMerchandiseVm.DataXNT> data = ProcedureCollection.GetDataInventoryByCondition(unitCode, MaKho, value.MaHang, tableName, _ParentUnitCode); if (data.Count > 0) { decimal.TryParse(value.GiaVon.ToString(), out giaVon); value.DonGia = giaVon; value.TyLeVATRa = data[0].TyLeVATRa; value.TyLeVATVao = data[0].TyLeVATVao; value.ThanhTien = value.DonGia * value.SoLuong; sum += (decimal)value.ThanhTien; } listDetails.Add(value); } temp.DataDetails = listDetails; var tyLe = _service.UnitOfWork.Repository <MdTax>().DbSet.Where(x => x.MaLoaiThue == temp.VAT).Select(x => x.TaxRate).FirstOrDefault(); if (tyLe != null) { temp.TienVat = sum * (tyLe / 100); } else { temp.TienVat = 0; } temp.ThanhTienTruocVat = sum; temp.ThanhTienSauVat = temp.ThanhTienTruocVat + temp.TienVat; } result.Data = temp; result.Status = true; return(Ok(result)); } return(NotFound()); }
public NvXuatKhacVm.ReportModel CreateReport(string id) { var _ParentUnitCode = GetParentUnitCode(); var result = new NvXuatKhacVm.ReportModel(); decimal sum = 0; var exsit = FindById(id); if (exsit != null) { result = Mapper.Map <NvVatTuChungTu, NvXuatKhacVm.ReportModel>(exsit); var nhanvien = UnitOfWork.Repository <AU_NGUOIDUNG>().DbSet.Where(x => x.Username == exsit.ICreateBy).FirstOrDefault(); if (nhanvien != null) { result.NameNhanVienCreate = nhanvien.TenNhanVien != null ? nhanvien.TenNhanVien : ""; } var detailData = UnitOfWork.Repository <NvVatTuChungTuChiTiet>().DbSet.Where(x => x.MaChungTuPk == exsit.MaChungTuPk).ToList(); result.DataReportDetails = Mapper.Map <List <NvVatTuChungTuChiTiet>, List <NvXuatKhacVm.ReportDetailModel> >(detailData); var sup = UnitOfWork.Repository <MdSupplier>().DbSet.FirstOrDefault(x => x.MaNCC == result.MaKhachHang); var cus = UnitOfWork.Repository <MdCustomer>().DbSet.FirstOrDefault(x => x.MaKH == result.MaKhachHang); if (sup != null) { result.TenKhachHang = sup.TenNCC; result.DiaChiKhachHang = sup.DiaChi; } else if (cus != null) { result.TenKhachHang = cus.TenKH; result.DiaChiKhachHang = cus.DiaChi; } var typeR = UnitOfWork.Repository <MdTypeReason>().DbSet.FirstOrDefault(x => x.MaLyDo == result.MaLyDo); if (typeR != null) { result.TenLyDo = typeR.TenLyDo; } if (exsit.TrangThai != 10) { List <NvXuatKhacVm.DtoDetail> listDetails = new List <NvXuatKhacVm.DtoDetail>(); var ky = CurrentSetting.GetKhoaSo(exsit.UnitCode); var tableName = ProcedureCollection.GetTableName(ky.Year, ky.Period); var MaKho = exsit.MaKhoXuat; //string kyKeToan = _servicePeriod.GetKyKeToan((DateTime)phieu.NgayCT); foreach (var value in result.DataReportDetails) { List <MdMerchandiseVm.DataXNT> data = ProcedureCollection.GetDataInventoryByCondition(exsit.UnitCode, MaKho, value.MaHang, tableName, _ParentUnitCode); value.GiaVon = value.GiaVon; value.DonGia = value.GiaVon; value.ThanhTien = value.DonGia * value.SoLuong; sum += (decimal)value.ThanhTien; } var tyLe = UnitOfWork.Repository <MdTax>().DbSet.Where(x => x.MaLoaiThue == exsit.VAT).Select(x => x.TaxRate).FirstOrDefault(); if (tyLe != null) { result.TienVat = sum * (tyLe / 100); } else { result.TienVat = 0; } result.ThanhTienTruocVat = sum; result.ThanhTienSauVat = result.ThanhTienTruocVat + result.TienVat; } var warehouses = UnitOfWork.Repository <MdWareHouse>().DbSet; var exportWareHouse = warehouses.FirstOrDefault(x => x.MaKho == result.MaKhoXuat); result.TenKhoXuat = exportWareHouse != null ? exportWareHouse.TenKho : ""; } var unitCode = GetCurrentUnitCode(); var createDate = DateTime.Now; result.CreateDay = createDate.Day; result.CreateMonth = createDate.Month; result.CreateYear = createDate.Year; result.TenDonVi = CurrentSetting.GetUnitName(unitCode); result.DiaChiDonVi = CurrentSetting.GetUnitAddress(unitCode); //GetNhanVien if (HttpContext.Current != null && HttpContext.Current.User is ClaimsPrincipal) { var currentUser = (HttpContext.Current.User as ClaimsPrincipal); var name = currentUser.Identity.Name; var nhanVien = UnitOfWork.Repository <AU_NGUOIDUNG>().DbSet.Where(x => x.Username == name).FirstOrDefault(); if (nhanVien != null) { result.Username = nhanVien.TenNhanVien; } else { result.Username = "******"; } } return(result); }