Пример #1
0
        public PassagemPendenteEDI CarregarPassagemPendenteEdi(PassagemPendenteEDI passagemPendenteEdi)
        {
            Log.Info($"Passagem DetalheTrnId: {passagemPendenteEdi.DetalheTrnId} Data Passagem {passagemPendenteEdi.DataPassagem.ToStringPtBr()}");

            // criar passagem baseado no passagem pendente
            Log.Debug($"Passagem DetalheTrnId: {passagemPendenteEdi.DetalheTrnId} - Fluxo: GeradorPassagemEdiHandler | Criando Passagem Completa.");
            var query = new CriarPassagemCompletaEdiQuery(_dataSourceConectSysReadOnly, _dataSourceFallBack);

            query.Execute(passagemPendenteEdi);


            Log.Debug($"Passagem DetalheTrnId: {passagemPendenteEdi.DetalheTrnId} - Fluxo: GeradorPassagemEdiHandler | DefinirCategoriaUtilizada");
            var defnirCategoriaUtilizadaBo = new DefinirCategoriaUtilizadaEdiBo();

            var request = new CategoriaUtilizadasRequest
            {
                Codigo = passagemPendenteEdi.CategoriaCobrada?.Codigo ?? passagemPendenteEdi.CategoriaTag.Codigo,
                ListaDeParaCategoriaVeiculoId = passagemPendenteEdi.Conveniado.ListaDeParaCategoriaVeiculoId,
            };
            var categoriaUtilizada = defnirCategoriaUtilizadaBo.Definir(request);

            passagemPendenteEdi.CategoriaUtilizada       = categoriaUtilizada.CategoriaUtilizada;
            passagemPendenteEdi.ItemListaDeParaUtilizado = categoriaUtilizada.ItemListaDeParaUtilizado;


            return(passagemPendenteEdi);
        }
        public CategoriaUtilizadasResponse Definir(CategoriaUtilizadasRequest request)
        {
            var dataSourceConectSysReadOnly = AdoDataSourceProvider.GetDataSource(DbConnectionDataSourceType.ConectSysReadOnly);

            var queryCategorias = new ObterCategoriaVeiculoQuery(true, dataSourceConectSysReadOnly);
            var categorias      = DataBaseConnection.HandleExecution(queryCategorias.Execute).ToList();

            var categoria = categorias.FirstOrDefault(c => c.Codigo == request.Codigo);

            var categoriaUtilizada = new CategoriaUtilizadasResponse
            {
                CategoriaUtilizada = new CategoriaVeiculo {
                    Id = categoria?.CategoriaVeiculoId, Codigo = categoria?.Codigo ?? 0
                }
            };

            var queryListaDeParaCategVeic   = new ObterListaDeParaCategoriaVeiculoPorIdQuery();
            var listaDeParaCategoriaVeiculo =
                DataBaseConnection.HandleExecution(queryListaDeParaCategVeic.Execute, request.ListaDeParaCategoriaVeiculoId);

            if (listaDeParaCategoriaVeiculo != null && listaDeParaCategoriaVeiculo.ValidarLista())
            {
                var queryItemListaDePara = new ObterItemListaDeParaPorCodigoEntradaQuery();
                var itemListaDePara      = DataBaseConnection.HandleExecution(queryItemListaDePara.Execute, request.Codigo);

                if (itemListaDePara != null && itemListaDePara.ValidarLista()) //  definição por itemDeParaUtilizado
                {
                    categoria = categorias.FirstOrDefault(
                        c => c.CategoriaVeiculoId == itemListaDePara.CategoriaVeiculoId);

                    categoriaUtilizada.CategoriaUtilizada =
                        new CategoriaVeiculo {
                        Id = categoria?.CategoriaVeiculoId, Codigo = categoria?.Codigo ?? 0
                    };
                    categoriaUtilizada.ItemListaDeParaUtilizado = itemListaDePara.ItemListaDeParaId;
                }
            }
            return(categoriaUtilizada);
        }