public async Task <PiTotalAmountValidationDto> GetCrntYearTotlProformaInvAmtByProd(ProfInvTotalAmtDtoByProdDto profInvTotalAmtDtoByProdDto) { var totalAmtValidityDto = await _proformaInvoiceRepository.GetCrntYearTotlProformaInvAmtByProd(profInvTotalAmtDtoByProdDto); return(totalAmtValidityDto); }
public async Task <PiTotalAmountValidationDto> GetCrntYearTotlProformaInvAmtByProd(ProfInvTotalAmtDtoByProdDto profInvTotalAmtDtoByProdDto) { int year = DateTime.Now.Year; DateTime firstDay = new DateTime(year, 1, 1); DateTime lastDay = new DateTime(year, 12, 31); var lastDate = lastDay.AddHours(23).AddMinutes(59).AddSeconds(59); var annReqsCrntYear = await(from mst in _nmsDataContext.ProformaInvoiceMsts join dtl in _nmsDataContext.ProformaInvoiceDtls on mst.Id equals dtl.MstId where (mst.ImporterId == profInvTotalAmtDtoByProdDto.ImporterId && dtl.ProdName == profInvTotalAmtDtoByProdDto.ProdName && mst.SubmissionDate > firstDay && mst.SubmissionDate <= lastDate && dtl.ApprovalStatus != false) select new{ dtl.Id, dtl.ProdName, dtl.TotalAmount }).ToListAsync(); var totalProformaAmount = 0.0; foreach (var v in annReqsCrntYear) { totalProformaAmount += v.TotalAmount; } var annualreq = await(from mst in _nmsDataContext.AnnualRequirementMsts join dtl in _nmsDataContext.AnnualRequirementDtls on mst.Id equals dtl.AnnReqMstId where (mst.ImporterId == profInvTotalAmtDtoByProdDto.ImporterId && dtl.ProdName == profInvTotalAmtDtoByProdDto.ProdName && mst.SubmissionDate > firstDay && mst.SubmissionDate <= lastDate) select new { dtl.Id, dtl.ProdName, dtl.TotalAmount }).FirstOrDefaultAsync(); var totalAnnualAmount = annualreq.TotalAmount; var remainingAmount = totalAnnualAmount - totalProformaAmount; var totalAmtValidityDto = new PiTotalAmountValidationDto { AnnualTotalAmount = totalAnnualAmount, ProformaTotalAmount = totalProformaAmount, RemainingAmount = remainingAmount, ValidationStatus = profInvTotalAmtDtoByProdDto.TotalAmount > remainingAmount ? false : true }; return(totalAmtValidityDto); }