public static ConsultasWS ObtenerInstancia( TipoWebService tipo, LogueadorFe logueador ) { ConsultasWS retorno = null; switch ( tipo ) { case TipoWebService.Nacional: retorno = new ConsultasWSFe( new WSFEV1(), logueador ); break; case TipoWebService.MTXCA: retorno = new ConsultasWSMTXCA( new WSMTXCA(), logueador ); break; default: break; } return retorno; }
public CAERespuestaFe ReprocesarComprobantes( FeCabecera cabFe, Autorizacion feAut ) { ConversorConsultaCaeARespuestaCae conversor = new ConversorConsultaCaeARespuestaCae(); CAERespuestaFe retorno = new CAERespuestaFe(); WrapperCabeceraFe wrapperFe = new WrapperCabeceraFe(); List<Observacion> diferencias; retorno.Cabecera = conversor.ConvertirCabecera( cabFe, feAut ); ConsultasWSMTXCA consultas = new ConsultasWSMTXCA( this.wsfe, this.logueador ); CAEDetalleRespuesta respuestaReproceso; retorno.Detalle = new List<CAEDetalleRespuesta>(); foreach ( FeDetalle lote in cabFe.DetalleComprobantes ) { respuestaReproceso = consultas.DatosDeComprobante( feAut, cabFe.TipoComprobante, (int) lote.ComprobanteDesde, cabFe.PuntoDeVenta ); diferencias = wrapperFe.Comparar( respuestaReproceso, lote ); if ( diferencias.Count > 0 ) { respuestaReproceso.Resultado = "R"; respuestaReproceso.Cae = ""; respuestaReproceso.Observaciones = diferencias; } retorno.Detalle.Add( respuestaReproceso ); } this.logueador.LoguearObservaciones( retorno.Detalle, cabFe ); return retorno; }