public CAERespuestaFex ObtenerCae( Autorizacion aut, FexCabecera cabFex ) { ClsFEXAuthRequest feAut = this.ObtenerFeAuthReq( aut ); CAERespuestaFex respuesta = this.SolicitarCAE( cabFex, feAut ); return respuesta; }
public ClsFEXRequest Convertir( FexCabecera cabFex ) { ClsFEXRequest cab = new ClsFEXRequest(); cab.Id = cabFex.Id; cab.Cbte_Tipo = (short)cabFex.TipoComprobante; cab.Fecha_cbte = cabFex.FechaComprobante; cab.Punto_vta = (short)cabFex.PuntoDeVenta; cab.Cbte_nro = cabFex.ComprobanteNumero; cab.Tipo_expo = (short) cabFex.TipoExportacion; cab.Permiso_existente = cabFex.PermisoExistente; cab.Dst_cmp = (short)cabFex.PaisDestinoComprobante; cab.Cliente = cabFex.Cliente; cab.Cuit_pais_cliente = cabFex.CuitPaisCliente; cab.Domicilio_cliente = cabFex.DomicilioCliente; cab.Id_impositivo = cabFex.IdImpositivo; cab.Moneda_Id = cabFex.MonedaId; cab.Moneda_ctz = (decimal) cabFex.MonedaCotizacion; cab.Obs_comerciales = cabFex.ObservacionesComerciales; cab.Obs = cabFex.Observaciones; cab.Forma_pago = cabFex.FormaDePagoDescripcion; cab.Incoterms = cabFex.ClausulaDeVenta; cab.Incoterms_Ds = cabFex.ClausulaDeVentaInformacionComplementaria; cab.Idioma_cbte = (short) cabFex.IdiomaComprobante; cab.Permisos = this.ConvertirPermisos( cabFex.Permisos ); cab.Cmps_asoc = this.ConvertirComprobantesAsociados( cabFex.ComprobantesAsociados ); cab.Items = this.ConvertirItems( cabFex.Items ); cab.Imp_total = (decimal) this.ObtenerValorImporteTotal( cabFex.ImporteTotal ); return cab; }
public List<Observacion> Obtener(ClsFEXGetCMPR comprobanteAfip, FexCabecera cabFex) { List<string> diferencias = new List<string>(); if ( comprobanteAfip.Fecha_cbte != cabFex.FechaComprobante ) { diferencias.Add("La fecha no es la correcta."); diferencias.Add("Afip: " + comprobanteAfip.Fecha_cbte + " Enviado :" + cabFex.FechaComprobante); } if ( comprobanteAfip.Cbte_nro != cabFex.ComprobanteNumero ) { diferencias.Add("El número no es el correcto."); diferencias.Add("Afip: " + comprobanteAfip.Cbte_nro + " Enviado :" + cabFex.ComprobanteNumero); } if ( comprobanteAfip.Incoterms != cabFex.ClausulaDeVenta ) { diferencias.Add("El incoterms no es el correcto."); diferencias.Add("Afip: " + comprobanteAfip.Incoterms + " Enviado :" + cabFex.ClausulaDeVenta); } if (comprobanteAfip.Cuit_pais_cliente != cabFex.CuitPaisCliente) { diferencias.Add("El C.U.I.T. no es el correcto."); diferencias.Add("Afip: " + comprobanteAfip.Cuit_pais_cliente + " Enviado :" + cabFex.CuitPaisCliente); } if (comprobanteAfip.Imp_total != (decimal) cabFex.ImporteTotal) { diferencias.Add("El total no es correcto."); diferencias.Add("Afip: " + comprobanteAfip.Imp_total.ToString(CultureInfo.InvariantCulture.NumberFormat) + " Enviado :" + cabFex.ImporteTotal.ToString(CultureInfo.InvariantCulture.NumberFormat)); } List<Observacion> observaciones = new List<Observacion>(); Observacion observacion; for (int i = 0; i < diferencias.Count; i++) { observacion = new Observacion(); observacion.Mensaje = diferencias[i]; observaciones.Add( observacion ); } return observaciones; }
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; }
private ClsFEXRequest ObtenerClsFexRequest( FexCabecera cab ) { WrapperCabeceraFex wcf = new WrapperCabeceraFex(); return wcf.Convertir( cab ); }
private CAERespuestaFex SolicitarCAE( FexCabecera cabFex, ClsFEXAuthRequest aut ) { ClsFEXRequest feCaeRequest = this.ObtenerClsFexRequest( cabFex ); SerializadorRequest serializador = new SerializadorRequest(); serializador.Serializar<ClsFEXRequest>( feCaeRequest ); FEXResponseAuthorize caeResponse = this.wsfex.FEXAuthorize( aut, feCaeRequest ); ManagerErroresFe managerErrores = new ManagerErroresFe( this.logueador ); if (this.HuboSolicitudesRechazadas( caeResponse )) { this.GenerarBackupArchivoSerializado(serializador, feCaeRequest); } managerErrores.CapturarError(caeResponse.FEXErr, cabFex); WrapperCaeRespuestaFex wcrf = new WrapperCaeRespuestaFex(); return wcrf.Convertir( caeResponse.FEXResultAuth ); }
private long ObtenerIdFex( FexCabecera cabFex, long ultimoNro, Autorizacion autorizacion ) { long retorno; if ( cabFex.ComprobanteNumero <= ultimoNro ) { ConsultasWSFex consultas = new ConsultasWSFex( this.wsfex, this.logueador ); ClsFEXGetCMPR consRet = consultas.DatosDeComprobante( autorizacion, cabFex.TipoComprobante, cabFex.ComprobanteNumero, cabFex.PuntoDeVenta ); retorno = consRet.Id; } else { ConsultasWSFex consultas = new ConsultasWSFex( this.wsfex, this.logueador ); retorno = consultas.UltimoId( autorizacion ) + 1; } return retorno; }
public CAERespuestaFex ObtenerCaeWSFEX( ConfiguracionWS config, FexCabecera cabFex ) { Autorizacion aut = this.IniciarWSAA( config ); this.AplicarConfiguracionWS( this.funcionesFex.Wsfex, config ); return this.funcionesFex.ObtenerCaeWSFEX( aut, cabFex ); }
public List<Observacion> Comparar(ClsFEXGetCMPR comprobanteAfip, FexCabecera cabFex) { BuscadorDeDiferencias buscadorDiferencias = new BuscadorDeDiferencias(); return buscadorDiferencias.Obtener(comprobanteAfip, cabFex); }