示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
 public RelNotaFiscalLiberadaListaViewModel()
 {
     Filtro = new RelNotaFiscalLiberadaFiltro();
     Filtro.FornecedorCliente = new ClienteFornecedorDTO();
     Filtro.Contrato          = new ContratoDTO();
 }