コード例 #1
0
        public bool CheckNumeroDocumentoExists(string numeroDocumento, Guid fornecedorId, Guid novaDuplicataId)
        {
            var numeroDocumentoSpecification = new DuplicataNumeroDocumentoSpecification(numeroDocumento);
            var fornecedorSpecification      = new DuplicataFornecedorIdSpecification(fornecedorId);

            Duplicata duplicata = _dbSet
                                  .AsNoTracking()
                                  .Where(numeroDocumentoSpecification
                                         .And(fornecedorSpecification)
                                         .ToExpression())
                                  .FirstOrDefault();

            if (duplicata == null || novaDuplicataId == duplicata.Id)
            {
                return(false);
            }

            return(true);
        }
コード例 #2
0
        public IActionResult Index(bool?apenasNaoPagas, bool?apenasVencidas, Guid?fornecedorId, string numeroDocumento = null, string minValor = null, string maxValor = null, string dataEmissao = null, string dataVencimento = null, int pageNumber = 1, int pageSize = 20)
        {
            var pagaSpecification            = new DuplicataNaoPagaSpecification(apenasNaoPagas);
            var vencidaSpecification         = new DuplicataVencidaSpecification(apenasVencidas);
            var fornecedorIdSpecification    = new DuplicataFornecedorIdSpecification(fornecedorId);
            var numeroDocumentoSpecification = new DuplicataNumeroDocumentoSpecification(numeroDocumento);
            var valorSpecification           = new DuplicataValorSpecification(minValor.ToDecimal(), maxValor.ToDecimal());
            var dataSpecification            = new DuplicataDataSpecification(dataEmissao.ToDateTime(), dataVencimento.ToDateTime());

            var list = _duplicataApplicationService.Get(pagaSpecification
                                                        .And(vencidaSpecification)
                                                        .And(valorSpecification)
                                                        .And(fornecedorIdSpecification)
                                                        .And(numeroDocumentoSpecification)
                                                        .And(dataSpecification)
                                                        .ToExpression())
                       .OrderBy(d => d.DataVencimento)
                       .ThenBy(d => d.FornecedorId)
                       .ThenBy(d => d.NumeroDocumento);

            var viewModel = new DuplicataIndexViewModel {
                Duplicatas           = list.ToPagedList(pageNumber, pageSize),
                Fornecedores         = _fornecedorApplicationService.Get().OrderBy(f => f.Nome),
                ApenasNaoPagas       = apenasNaoPagas,
                ApenasVencidas       = apenasVencidas,
                MinValor             = minValor,
                MaxValor             = maxValor,
                FornecedorId         = fornecedorId,
                NumeroDocumento      = numeroDocumento,
                DataEmissao          = dataEmissao,
                DataVencimento       = dataVencimento,
                TotalResultados      = list.ToList().Count(),
                ValorTotalResultados = list.ToList().Sum(d => d.Valor),
                ValorTotalVencidas   = list.ToList().Where(d => d.Vencido).Sum(d => d.Valor)
            };

            return(View(viewModel));
        }