Beispiel #1
0
        public async Task <PiTotalAmountValidationDto> GetCrntYearTotlProformaInvAmtByProd(ProfInvTotalAmtDtoByProdDto profInvTotalAmtDtoByProdDto)
        {
            var totalAmtValidityDto = await _proformaInvoiceRepository.GetCrntYearTotlProformaInvAmtByProd(profInvTotalAmtDtoByProdDto);

            return(totalAmtValidityDto);
        }
Beispiel #2
0
        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);
        }