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(); }