public override CAEDetalleRespuesta DatosDeComprobante( Autorizacion aut, int tipoComprobante, int nroComprobante, int ptoVta ) { AuthRequestType feAutRequest = this.wa.ConvertirMTXCA( aut ); ConsultaComprobanteRequestType solicitud = new ConsultaComprobanteRequestType(); solicitud.numeroComprobante = nroComprobante; solicitud.codigoTipoComprobante = (short) tipoComprobante; solicitud.numeroPuntoVenta = (short) ptoVta; CodigoDescripcionType[] observaciones; CodigoDescripcionType[] errores; CodigoDescripcionType evento; ComprobanteType respuesta = this.ws.consultarComprobante( feAutRequest, solicitud, out observaciones, out errores, out evento ); this.managerErrores.CapturarError( errores ); ConversorConsultaCaeARespuestaCae conversor = new ConversorConsultaCaeARespuestaCae(); CAEDetalleRespuesta respuestaConvertida = conversor.ConvertirDetalle( respuesta ); return respuestaConvertida; }
private void recuperarAutorizacionAction_Execute(object sender, SimpleActionExecuteEventArgs e) { //cargar identificadores y sesión de la AFIP. Si no hay una válida, se inicia una nueva sesión y se guardan los cambios en la DB var objSpace = ( XPObjectSpace )Application.CreateObjectSpace( ); var identificadores = Identificadores.GetInstance(objSpace); if (identificadores.FacturaElectronicaEnte == null) { throw new Exception("Ente de factura electrónica no definida para esta empresa"); } var sesionWsmtxca = identificadores.FacturaElectronicaEnte.GetSesion(ServiceName); objSpace.CommitChanges( ); var comprobante = ( Comprobante )View.CurrentObject; //if ( comprobante.AutorizadaResultado == "A" ) // throw new Exception( "Comprobante ya autorizado" ); CodigoDescripcionType[] arrayObservaciones; CodigoDescripcionType[] arrayErrores; CodigoDescripcionType evento; var consultaComprobanteRequest = new ConsultaComprobanteRequestType( ) { codigoTipoComprobante = Convert.ToInt16(((ComprobanteTipo)comprobante.Tipo.GetMemberValue(AFIPModule.PropertyNameCodigoAfip)).Codigo), numeroPuntoVenta = ( short )comprobante.Sector, numeroComprobante = comprobante.Numero }; var resp = service.consultarComprobante(GetAuth(sesionWsmtxca), consultaComprobanteRequest, out arrayObservaciones, out arrayErrores, out evento); if (arrayErrores != null && arrayErrores.Length > 0) { var err = arrayErrores.Aggregate("", (current, error) => current + (error.codigo + " - " + error.descripcion + "\n")); //TODO errores de Encoding. No encontre otra manera de arreglarlo err = err.Replace("ó", "ó").Replace("ú", "ú"); comprobante.AutorizadaNotas = err; throw new Exception("Error en la operación:\n" + err); } if (resp == null) { throw new Exception("Error en la operación:\nNo se obtuvieron datos para la consulta"); } //comprobante.AutorizadaResultado = resp.; comprobante.AutorizadaNotas = ""; if (arrayObservaciones != null && arrayObservaciones.Length > 0) { var obs = arrayObservaciones.Aggregate("", (current, observacion) => current + (observacion.codigo + " - " + observacion.descripcion + "\n")); comprobante.AutorizadaNotas += obs; } comprobante.AutorizadaCodigo = resp.codigoAutorizacion.ToString( ); comprobante.AutorizadaCodigoFecVto = resp.fechaVencimiento; }