public FileDownloadDTO ExportarRelNotaFiscalLiberada(RelNotaFiscalLiberadaFiltro filtro, int?usuarioId, FormatoExportacaoArquivo formato) { if (!UsuarioLogado.IsInRole(Funcionalidade.RelNotasFiscaisLiberadasImprimir)) { messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error); return(null); } var specification = MontarSpecificationRelNotaFiscalLiberada(filtro, usuarioId); var listaMedicao = contratoRetificacaoItemMedicaoRepository.ListarPeloFiltro(specification, l => l.Contrato.ContratoDescricao, l => l.Contrato.CentroCusto.ListaUsuarioCentroCusto.Select(u => u.Modulo), l => l.Contrato.Contratado.PessoaFisica, l => l.Contrato.Contratado.PessoaJuridica, l => l.Contrato.Contratante.PessoaFisica, l => l.Contrato.Contratante.PessoaJuridica, l => l.ContratoRetificacao, l => l.ContratoRetificacaoItem.Classe, l => l.ContratoRetificacaoItem.Servico, l => l.ContratoRetificacaoItem.ListaContratoRetificacaoItemImposto.Select(i => i.ImpostoFinanceiro), l => l.MultiFornecedor, l => l.ContratoRetificacaoItemCronograma, l => l.TipoDocumento, l => l.TituloPagar, l => l.TituloReceber).To <List <ContratoRetificacaoItemMedicao> >(); relNotaFiscalLiberada objRel = new relNotaFiscalLiberada(); objRel.SetDataSource(RelNotaFiscalLiberadaToDataTable(listaMedicao)); string periodo = filtro.DataInicial.Value.ToString("dd/MM/yyyy") + " a " + filtro.DataFinal.Value.ToString("dd/MM/yyyy"); var parametros = parametrosContratoRepository.Obter(); var centroCusto = centroCustoRepository.ObterPeloCodigo(filtro.CentroCusto.Codigo, l => l.ListaCentroCustoEmpresa); var caminhoImagem = PrepararIconeRelatorio(centroCusto, parametros); var nomeEmpresa = ObterNomeEmpresa(centroCusto, parametros); objRel.SetParameterValue("nomeEmpresa", nomeEmpresa); objRel.SetParameterValue("descricaoCentroCusto", centroCusto != null ? centroCusto.Descricao : ""); objRel.SetParameterValue("periodo", periodo); objRel.SetParameterValue("caminhoImagem", caminhoImagem); FileDownloadDTO arquivo = new FileDownloadDTO( "Rel. Nota Fiscal Liberada", objRel.ExportToStream((ExportFormatType)formato), formato); if (System.IO.File.Exists(caminhoImagem)) { System.IO.File.Delete(caminhoImagem); } return(arquivo); }
private Specification <ContratoRetificacaoItemMedicao> MontarSpecificationRelNotaFiscalLiberada(RelNotaFiscalLiberadaFiltro filtro, int?idUsuario) { var specification = (Specification <ContratoRetificacaoItemMedicao>) new TrueSpecification <ContratoRetificacaoItemMedicao>(); if (usuarioAppService.UsuarioPossuiCentroCustoDefinidoNoModulo(idUsuario, Resource.Sigim.NomeModulo.Contrato)) { specification &= ContratoRetificacaoItemMedicaoSpecification.UsuarioPossuiAcessoAoCentroCusto(idUsuario, Resource.Sigim.NomeModulo.Contrato); } else { specification &= ContratoRetificacaoItemMedicaoSpecification.EhCentroCustoAtivo(); } if (filtro.Contrato.Id.HasValue) { specification &= ContratoRetificacaoItemMedicaoSpecification.PertenceAoContratoComSituacaoLiberado(filtro.Contrato.Id); } else { specification &= ContratoRetificacaoItemMedicaoSpecification.DataLiberacaoMaiorOuIgual(filtro.DataInicial); specification &= ContratoRetificacaoItemMedicaoSpecification.DataLiberacaoMenorOuIgual(filtro.DataFinal); specification &= ContratoRetificacaoItemMedicaoSpecification.PertenceAoCentroCustoIniciadoPor(filtro.CentroCusto.Codigo); specification &= ContratoRetificacaoItemMedicaoSpecification.DocumentoPertenceAhMedicao(filtro.Documento); specification &= ContratoRetificacaoItemMedicaoSpecification.FornecedorClientePertenceAhMedicao(filtro.FornecedorCliente.Id); } specification &= ContratoRetificacaoItemMedicaoSpecification.SituacaoIgualLiberado(); return(specification); }
public List <RelNotaFiscalLiberadaDTO> ListarPeloFiltroRelNotaFiscalLiberada(RelNotaFiscalLiberadaFiltro filtro, int?idUsuario, out int totalRegistros) { var specification = MontarSpecificationRelNotaFiscalLiberada(filtro, idUsuario); var listaMedicao = contratoRetificacaoItemMedicaoRepository.ListarPeloFiltroComPaginacao(specification, filtro.PaginationParameters.PageIndex, filtro.PaginationParameters.PageSize, filtro.PaginationParameters.OrderBy, filtro.PaginationParameters.Ascending, out totalRegistros, l => l.Contrato.ContratoDescricao, l => l.Contrato.CentroCusto, l => l.Contrato.Contratado.PessoaFisica, l => l.Contrato.Contratado.PessoaJuridica, l => l.Contrato.Contratante.PessoaFisica, l => l.Contrato.Contratante.PessoaJuridica, l => l.ContratoRetificacaoItem.Classe, l => l.ContratoRetificacaoItem.Servico, l => l.ContratoRetificacaoItem.ListaContratoRetificacaoItemImposto.Select(i => i.ImpostoFinanceiro), l => l.MultiFornecedor).To <List <ContratoRetificacaoItemMedicao> >(); List <RelNotaFiscalLiberadaDTO> listaRelNotaFiscalLiberadaDTO = new List <RelNotaFiscalLiberadaDTO>(); foreach (var medicao in listaMedicao) { RelNotaFiscalLiberadaDTO relat = new RelNotaFiscalLiberadaDTO(); if (medicao.MultiFornecedorId.HasValue) { relat.FornecedorCliente = medicao.MultiFornecedor.To <Application.DTO.Sigim.ClienteFornecedorDTO>(); relat.FornecedorClienteId = medicao.MultiFornecedorId; } else { if (medicao.Contrato.TipoContrato == 0) { relat.FornecedorCliente = medicao.Contrato.Contratado.To <Application.DTO.Sigim.ClienteFornecedorDTO>(); relat.FornecedorClienteId = medicao.Contrato.ContratadoId; } else { relat.FornecedorCliente = medicao.Contrato.Contratante.To <Application.DTO.Sigim.ClienteFornecedorDTO>(); relat.FornecedorClienteId = medicao.Contrato.ContratanteId; } } relat.NumeroDocumento = medicao.NumeroDocumento; relat.Contrato = medicao.Contrato.To <Application.DTO.Contrato.ContratoDTO>(); relat.ContratoId = medicao.Contrato.Id.Value; relat.ContratoRetificacaoItem = medicao.ContratoRetificacaoItem.To <ContratoRetificacaoItemDTO>(); relat.ContratoRetificacaoItemId = medicao.ContratoRetificacaoItem.Id.Value; relat.DataEmissao = medicao.DataEmissao; relat.DataVencimento = medicao.DataVencimento; decimal valorImpostoRetidoMedicao = medicao.Contrato.ObterValorImpostoRetidoMedicao(medicao.SequencialItem, medicao.SequencialCronograma, medicao.ContratoRetificacaoItemId, medicao.Id); decimal valorRetido = 0; decimal desconto = 0; if (medicao.ValorRetido.HasValue) { valorRetido = medicao.ValorRetido.Value; } if (valorRetido > valorImpostoRetidoMedicao) { desconto = valorRetido - valorImpostoRetidoMedicao; } else { desconto = valorImpostoRetidoMedicao - valorRetido; } decimal valorDesconto = medicao.Valor - desconto; relat.Valor = medicao.Valor; relat.ValorClasse = valorDesconto; if (medicao.TituloPagarId.HasValue) { relat.TituloId = medicao.TituloPagarId.Value; } if (medicao.TituloReceberId.HasValue) { relat.TituloId = medicao.TituloReceberId.Value; } relat.UsuarioLiberacao = medicao.UsuarioLiberacao; listaRelNotaFiscalLiberadaDTO.Add(relat); } return(listaRelNotaFiscalLiberadaDTO); }
public RelNotaFiscalLiberadaListaViewModel() { Filtro = new RelNotaFiscalLiberadaFiltro(); Filtro.FornecedorCliente = new ClienteFornecedorDTO(); Filtro.Contrato = new ContratoDTO(); }