public CAERespuestaFex ObtenerCaeWSFEX( Autorizacion autorizacion, FexCabecera cabFex ) { long ultimoNro = this.UltimoComprobanteFex( autorizacion, cabFex.PuntoDeVenta, cabFex.TipoComprobante ); WrapperCabeceraFex wr = new WrapperCabeceraFex(); ServidorFacturaElectronicaExportacion sfex = new ServidorFacturaElectronicaExportacion( this.wsfex, this.logueador ); CAERespuestaFex respuesta = null; cabFex.Id = this.ObtenerIdFex( cabFex, ultimoNro, autorizacion ); List<Observacion> diferencias; try { this.logueador.Loguear( "Consultando Afip....." ); this.logueador.Loguear( cabFex.Serializar() ); respuesta = sfex.ObtenerCae( autorizacion, cabFex ); this.logueador.Loguear( "Respuesta Afip......." ); this.logueador.Loguear( respuesta.Serializar() ); if ( cabFex.ComprobanteNumero <= ultimoNro ) { ConsultasWSFex consulta = new ConsultasWSFex( wsfex ); ClsFEXGetCMPR comprobanteAfip = consulta.DatosDeComprobante( autorizacion, cabFex.TipoComprobante, cabFex.ComprobanteNumero, cabFex.PuntoDeVenta ); // Aca comparo los comprobantes y y si hay diferencias lo rechazo diferencias = wr.Comparar( comprobanteAfip, cabFex ); if ( diferencias.Count > 0 ) { respuesta.MotivosObservaciones = "Diferencias en comprobante."; respuesta.Observaciones = diferencias; respuesta.Resultado = "R"; respuesta.Cae = ""; } } } catch ( ExcepcionFe ex ) { this.MensajeDeError = ex.Message; throw ex; } return respuesta; }
public List<CAERespuestaFex> ObtenerCaeWSFEX( Autorizacion aut, List<FexCabecera> comprobantes ) { long ultimoNro = this.UltimoComprobanteFex( aut, comprobantes[0].PuntoDeVenta, comprobantes[0].TipoComprobante ); ServidorFacturaElectronicaExportacion sfex = new ServidorFacturaElectronicaExportacion( this.wsfex, this.logueador ); List<CAERespuestaFex> retorno = new List<CAERespuestaFex>(); CAERespuestaFex respuesta = null; foreach ( FexCabecera comprobante in comprobantes ) { respuesta = this.ObtenerCaeWSFEX( aut, comprobante ); retorno.Add( respuesta ); } return retorno; }