Ejemplo n.º 1
0
        public TransacaoPassagemArtesp ValidarEstornoSeNecessario(PassagemPendenteArtesp passagemPendenteArtesp,
                                                                  List <DetalheViagem> viagens)
        {
            if (passagemPendenteArtesp.TransacaoPassagemIdAnterior > 0)
            {
                var obterPassagemAnteriorValida =
                    new ObterPassagemAnteriorValidaQuery();

                var passagemOriginal = DataBaseConnection.HandleExecution(obterPassagemAnteriorValida.Execute, new ObterPassagemAnteriorValidaCompletaFilter(passagemPendenteArtesp.Conveniado.Id ?? 0,
                                                                                                                                                             passagemPendenteArtesp.NumeroReenvio,
                                                                                                                                                             passagemPendenteArtesp.ConveniadoPassagemId,
                                                                                                                                                             passagemPendenteArtesp.Conveniado.CodigoProtocoloArtesp));

                if (passagemOriginal != null &&
                    passagemPendenteArtesp.NumeroReenvio > passagemOriginal.Reenvio &&
                    !PossuiViagemAgendadaAnterior(passagemOriginal, passagemPendenteArtesp, viagens))
                {
                    var obterTransacaoPassagem = new ObterTransacaoPassagemPorTransacaoIdQuery();

                    TransacaoAnterior = DataBaseConnection.HandleExecution(obterTransacaoPassagem.Execute, passagemPendenteArtesp.TransacaoPassagemIdAnterior);

                    Estornar(SomenteInformacoesAlteradas(passagemPendenteArtesp, passagemOriginal), passagemPendenteArtesp.TransacaoPassagemIdAnterior);
                }
            }
            return(TransacaoAnterior);
        }
 public PassagemCompensadaPreviamenteValidator()
 {
     _transacaoPassagemIdAnteriorValidaQuery = new ObterTransacaoPassagemIdAnteriorValidaQuery();
     _transacaoPassagemPorTransacaoIdQuery   = new ObterTransacaoPassagemPorTransacaoIdQuery();
     _passagemAnteriorValidaQuery            = new ObterPassagemAnteriorValidaQuery();
 }