Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-08-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Nessie Ver Mensaje
En segundo lugar, una duda sobre el campo DESCUENTO del XML de TicketBai Gipuzkoa: He visto que el descuento solo se puede aplicar a una línea detalle en concreto. En mi caso, me interesaría aplicar un descuento a la factura completa, no a una línea detalle concreta. No he visto que el XML tenga ese campo. ¿Alguien se encuentra en esta misma tesitura? (Voy a escribir a TicketBai Gipuzkoa para comentarlo, pero me gustaría saber si alguien tiene el mismo problema).

Buenos días.
Puestos a escoger una opción de las 2 a implementar, creo que la de las líneas es más lógica (además de la más habitual).
Sólo se me ocurre en tu caso, que apliques el descuento a una línea calculando cual sería (si es posible), o que lo prorratees en todas las líneas de la factura (teniendo en cuenta posibles errores de redondeo).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 09-08-2021
adolphsys adolphsys is offline
Miembro
 
Registrado: abr 2006
Posts: 68
Poder: 19
adolphsys Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Buenos días.
Puestos a escoger una opción de las 2 a implementar, creo que la de las líneas es más lógica (además de la más habitual).
Sólo se me ocurre en tu caso, que apliques el descuento a una línea calculando cual sería (si es posible), o que lo prorratees en todas las líneas de la factura (teniendo en cuenta posibles errores de redondeo).
Hola, creo que Nessie se refiere a la aplicación de descuentos o cargos globales (por ejemplo portes) en la factura.
Echad un vistazo a la FAQ de Gipuzkoa 12.13: "...cada uno de los descuentos globales también deberán figurar en la factura, consignándose cada uno de ellos como una nueva línea de detalle describiendo el concepto del descuento, en su caso, y el importe, que según se configure el mismo, pudiera tener signo negativo."
Responder Con Cita
  #3  
Antiguo 12-08-2021
Nessie Nessie is offline
Miembro
 
Registrado: ago 2021
Posts: 13
Poder: 0
Nessie Va por buen camino
Talking

Cita:
Empezado por adolphsys Ver Mensaje
Hola, creo que Nessie se refiere a la aplicación de descuentos o cargos globales (por ejemplo portes) en la factura.
Echad un vistazo a la FAQ de Gipuzkoa 12.13: "...cada uno de los descuentos globales también deberán figurar en la factura, consignándose cada uno de ellos como una nueva línea de detalle describiendo el concepto del descuento, en su caso, y el importe, que según se configure el mismo, pudiera tener signo negativo."

Gracias por la respuesta, Adosplsys, y por la referencia a las FAQ. No se me había ocurrido que el descuento podía ser una nueva línea de detalle con el importe negativo. Solucionado, entonces. Gracias!
Responder Con Cita
  #4  
Antiguo 18-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Red face Gracias

Hola a tod@s...
Primero daros las gracias por compartir todos los conocimientos y dudas que os habéis ido encontrando con el TBAI (ese gran desconocido con el que acabas soñando...)
He conseguido, gracias a vosotros generar el xml, firmarlo (con el AutoFirmaCommandLine), generar el QR, enviarlo y casi lo más difícil, que lo acepten en Guipuzcoa...
Lo he hecho todo con Tokyo (10.2.3), si alguien tiene alguna duda... aquí estoy a vuestra disposición...

Sólo tengo un problemilla con la respuesta, por ahora leo la respuesta directamente a pelo en puro xml. (FindNode('Salida'), etc...) y funciona, pero no la puedo parsear al tipo IXMLTicketBaiResponse (generado automáticamente a partir del xsd)... que sería más elegante, legible y correcto.

intento esto:

Código Delphi [-]
          
var
  idHttp: TIdHttp;
  xmlResp: IXMLDocument;
  xmlTBResp: IXMLTicketBaiResponse;
begin
          ...
          idhttp.Request.ContentType := 'application/xml; charset=utf-8'; // Para evitar el 'ón' de la firma.
          strResponse := idHttp.Post(tblTBAI_Admin.FieldByName('URL_Envia').AsString.Trim + '\alta', RequestBody);
          if not strResponse.isEmpty then
          begin
            xmlResp := TXMLDocument.create(nil);
            strResponse := strResponse.Replace('ns2:TicketBaiResponse','TicketBaiResponse',[rfReplaceAll]); // probado de quitar y nada...
            CoInitialize(nil);
            xmlResp.LoadFromXML(strResponse);
            xmlResp.Active := true;
            responseFileName := strFileName + '_Respuesta_' + formatDateTime(TBAI_DATE_FORMAT_FILE, now()) + FILE_EXT_XML;
            xmlResp.SaveToFile(responseFileName);
            // Aquí podría recorrer xmlResp sin problema...
            if fileExists(responseFileName) then
            begin
              xmlTBResp := NewTicketBaiResponse();
              CoInitialize(nil);
              // Aquí falla con el EIntfCastError 'interface not supported' al intentar meterlo en el tipo TBAIResponse con el LoadTicketBaiResponse
              xmlTBResp := LoadTicketBaiResponse(responseFileName);
              xmlTBResp.Active := true;
              if (xmlTBResp <> nil) and (xmlTBResp.Salida <> nil) then
              ....

Tambien he probado con
Código Delphi [-]
              ...
              xmlTBResp := NewTicketBaiResponse();
              CoInitialize(nil);
              // Aquí falla con el EIntfCastError 'interface not supported' al intentar meterlo en el tipo TBAIResponse con el LoadTicketBaiResponse
              xmlTBResp := GetTicketBaiResponse(xmlResp);  /// Get del xml en vez de load, que es más directo y no hay que guardar a disco
              xmlTBResp.Active := true;
              if (xmlTBResp <> nil) and (xmlTBResp.Salida <> nil) then
              ...
y tampoco...

Si a alguien se le ocurre algo... si no lo dejaré moviéndome por los nodos a pelo...

Muchas gracias de nuevo...

Última edición por iMia fecha: 18-08-2021 a las 08:51:33.
Responder Con Cita
  #5  
Antiguo 18-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Angry Gipuzkoa caido... 503 Service unavailable...

Pues eso... ahora mismito... 18/08/21 10:15h

Como si todos hiciésemos vacaciones...
Responder Con Cita
  #6  
Antiguo 18-08-2021
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Unhappy

Buenos dias, estoy probando a enviar ficheros individualmente a Guipuzcoa (incluso uno que ya estaba validado) y me da constantemente el error:

Error 415: SRVE0295E: Error reported: 415


Por lo menos deberia responder asi, porque lo he modificado:
Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <IdentificadorTBAI>TBAI-03815084M-290721-AfxBP2ingy2gF-031</IdentificadorTBAI>
        <FechaRecepcion>10-08-2021 13:27:51</FechaRecepcion>
        <Estado>00</Estado>
        <Descripcion>Recibido</Descripcion>
        <Azalpena>Jasota</Azalpena>
        <ResultadosValidacion>
            <Codigo>008</Codigo>
            <Descripcion>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Descripcion>
            <Azalpena>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Azalpena>
        </ResultadosValidacion>
        <ResultadosValidacion>
            <Codigo>010</Codigo>
            <Descripcion>Aviso: Posible error de encadenamiento.</Descripcion>
            <Azalpena>Abisua: Litekeena da kateamendu errorea gertatzea.</Azalpena>
        </ResultadosValidacion>
        <CSV>TBAId7462037-dab5-4091-97f5-1ca9ffedd8eb</CSV>
    </Salida>
</ns2:TicketBaiResponse>
¿A vosotros os sigue funcionando?
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #7  
Antiguo 18-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Cita:
Empezado por defcon1_es Ver Mensaje
Buenos dias, estoy probando a enviar ficheros individualmente a Guipuzcoa (incluso uno que ya estaba validado) y me da constantemente el error:

Error 415: SRVE0295E: Error reported: 415


Por lo menos deberia responder asi, porque lo he modificado:
Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <IdentificadorTBAI>TBAI-03815084M-290721-AfxBP2ingy2gF-031</IdentificadorTBAI>
        <FechaRecepcion>10-08-2021 13:27:51</FechaRecepcion>
        <Estado>00</Estado>
        <Descripcion>Recibido</Descripcion>
        <Azalpena>Jasota</Azalpena>
        <ResultadosValidacion>
            <Codigo>008</Codigo>
            <Descripcion>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Descripcion>
            <Azalpena>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Azalpena>
        </ResultadosValidacion>
        <ResultadosValidacion>
            <Codigo>010</Codigo>
            <Descripcion>Aviso: Posible error de encadenamiento.</Descripcion>
            <Azalpena>Abisua: Litekeena da kateamendu errorea gertatzea.</Azalpena>
        </ResultadosValidacion>
        <CSV>TBAId7462037-dab5-4091-97f5-1ca9ffedd8eb</CSV>
    </Salida>
</ns2:TicketBaiResponse>
¿A vosotros os sigue funcionando?
guacho... mira el mensaje de encima...
Responder Con Cita
  #8  
Antiguo 18-08-2021
edari edari is offline
Miembro
 
Registrado: jun 2021
Posts: 178
Poder: 3
edari Va por buen camino
Cita:
Empezado por defcon1_es Ver Mensaje
Buenos dias, estoy probando a enviar ficheros individualmente a Guipuzcoa (incluso uno que ya estaba validado) y me da constantemente el error:

Error 415: SRVE0295E: Error reported: 415


Por lo menos deberia responder asi, porque lo he modificado:
Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <IdentificadorTBAI>TBAI-03815084M-290721-AfxBP2ingy2gF-031</IdentificadorTBAI>
        <FechaRecepcion>10-08-2021 13:27:51</FechaRecepcion>
        <Estado>00</Estado>
        <Descripcion>Recibido</Descripcion>
        <Azalpena>Jasota</Azalpena>
        <ResultadosValidacion>
            <Codigo>008</Codigo>
            <Descripcion>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Descripcion>
            <Azalpena>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Azalpena>
        </ResultadosValidacion>
        <ResultadosValidacion>
            <Codigo>010</Codigo>
            <Descripcion>Aviso: Posible error de encadenamiento.</Descripcion>
            <Azalpena>Abisua: Litekeena da kateamendu errorea gertatzea.</Azalpena>
        </ResultadosValidacion>
        <CSV>TBAId7462037-dab5-4091-97f5-1ca9ffedd8eb</CSV>
    </Salida>
</ns2:TicketBaiResponse>
¿A vosotros os sigue funcionando?

Exactamente igual por aquí. No deben tener buen día. Algo tienen mal.



El error 008 "el mensaje ha sido modificado en tránsito o la firma no está bien realizada" no me debería salir porque he enviado sin problemas otros veces atrás y todo iba o casi...


...y digo casi porque les tengo remitido una consulta sobre el segundo error que te/me da, el de encadenamiento de facturas.


Hasta ahora si yo "jugando" provocaba un error de encadenamiento en la primera factura de un paquete (imaginemos) de 9 facturas, la primera me iba con error de encadenamiento (correcto y con sentido porque así había ocurrido) y las siguientes 8 facturas me subían perfectas (sin error de encadenamiento)


Desde finales de julio TODAS LAS FACTURAS ME SUBEN SIEMPRE CON ERROR DE ENCADENAMIENTO, cosa que no entiendo el motivo, y como digo tengo hecha una consulta a soporte de Guipuzcoa sin contestar todavía.


Hsata aquí puedo leer.
Responder Con Cita
  #9  
Antiguo 18-08-2021
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Vale, el fallo estaba en mi llamada a CURL, que no le habia puesto el parametro -H "Content-type: application/xml;charset=UTF-8"




Código:
CURL -H "Content-type: application/xml;charset=UTF-8" 
-d @C:\Test\tmpFacBAI.xml_signed.xml 
-o C:\Test\Output.xml 
https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #10  
Antiguo 19-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Arrow

Cita:
Empezado por iMia Ver Mensaje
Hola a tod@s...
Primero daros las gracias por compartir todos los conocimientos y dudas que os habéis ido encontrando con el TBAI (ese gran desconocido con el que acabas soñando...)
He conseguido, gracias a vosotros generar el xml, firmarlo (con el AutoFirmaCommandLine), generar el QR, enviarlo y casi lo más difícil, que lo acepten en Guipuzcoa...
Lo he hecho todo con Tokyo (10.2.3), si alguien tiene alguna duda... aquí estoy a vuestra disposición...

Sólo tengo un problemilla con la respuesta, por ahora leo la respuesta directamente a pelo en puro xml. (FindNode('Salida'), etc...) y funciona, pero no la puedo parsear al tipo IXMLTicketBaiResponse (generado automáticamente a partir del xsd)... que sería más elegante, legible y correcto.

intento esto:

Código Delphi [-]
          
var
  idHttp: TIdHttp;
  xmlResp: IXMLDocument;
  xmlTBResp: IXMLTicketBaiResponse;
begin
          ...
          idhttp.Request.ContentType := 'application/xml; charset=utf-8'; // Para evitar el 'ón' de la firma.
          strResponse := idHttp.Post(tblTBAI_Admin.FieldByName('URL_Envia').AsString.Trim + '\alta', RequestBody);
          if not strResponse.isEmpty then
          begin
            xmlResp := TXMLDocument.create(nil);
            strResponse := strResponse.Replace('ns2:TicketBaiResponse','TicketBaiResponse',[rfReplaceAll]); // probado de quitar y nada...
            CoInitialize(nil);
            xmlResp.LoadFromXML(strResponse);
            xmlResp.Active := true;
            responseFileName := strFileName + '_Respuesta_' + formatDateTime(TBAI_DATE_FORMAT_FILE, now()) + FILE_EXT_XML;
            xmlResp.SaveToFile(responseFileName);
            // Aquí podría recorrer xmlResp sin problema...
            if fileExists(responseFileName) then
            begin
              xmlTBResp := NewTicketBaiResponse();
              CoInitialize(nil);
              // Aquí falla con el EIntfCastError 'interface not supported' al intentar meterlo en el tipo TBAIResponse con el LoadTicketBaiResponse
              xmlTBResp := LoadTicketBaiResponse(responseFileName);
              xmlTBResp.Active := true;
              if (xmlTBResp <> nil) and (xmlTBResp.Salida <> nil) then
              ....

Tambien he probado con
Código Delphi [-]
              ...
              xmlTBResp := NewTicketBaiResponse();
              CoInitialize(nil);
              // Aquí falla con el EIntfCastError 'interface not supported' al intentar meterlo en el tipo TBAIResponse con el LoadTicketBaiResponse
              xmlTBResp := GetTicketBaiResponse(xmlResp);  /// Get del xml en vez de load, que es más directo y no hay que guardar a disco
              xmlTBResp.Active := true;
              if (xmlTBResp <> nil) and (xmlTBResp.Salida <> nil) then
              ...
y tampoco...

Si a alguien se le ocurre algo... si no lo dejaré moviéndome por los nodos a pelo...

Muchas gracias de nuevo...
Me auto-respondo...
Lo encontré...
el problema estaba en el namespace.

en la línea que yo decía que había probado de quitar..

Código Delphi [-]
            
        strResponse := strResponse.Replace('ns2:TicketBaiResponse','TicketBaiResponse',[rfReplaceAll]); // probado de quitar y nada...

La había probado de quitar, pero anteriormente también había quitado el sufijo del namespace ':ns2' y no me ligaba de ninguna forma...
Dejando el mensaje tal y como llega, sin manipular, funciona bien

Código Delphi [-]
              xmlResp := TXMLDocument.create(nil);
              CoInitialize(nil);
              xmlResp.Active := TRUE;
              xmlResp.LoadFromXML(strResponse);
              xmlTBResp := LoadTicketBaiResponse(xmlResp);
pero al tratar el objeto Salida, está vacio ya que lo trata con el ns

por lo que hay que eliminar las 2 referencias al namespace... ':ns2' y 'ns2:'

Entonces va bien...

Saludos...
Responder Con Cita
  #11  
Antiguo 18-08-2021
Ivan_Teleco Ivan_Teleco is offline
Registrado
 
Registrado: jul 2021
Posts: 7
Poder: 0
Ivan_Teleco Va por buen camino
Duda Con El Envio

Hola buenas a todos, soy nevo en el foro y he estado mirando un poco vuestros comentarios y han sido de gran ayuda.
Al firmar el XML creo que tengo un problema, la firma lo estoy realizando con la linea de comandos de autofirma con este comando:


AutoFirmaCommandLine sign -i C:\TBAICOPIA\TICKETS\00437.XML -alias HUEGUN_IAN_XABI___73117194X -o C:\INDTEMP\F00.XML -password 1234asd. -store windows -format xades -config "format=XAdES Enveloped"


Creo que me falta el identificador y su corrspondiente hash, sin emabargo no se muy bien como incluirlos


Os adjunto el error que me da, si alguien puede sacarme de dudas se lo agradeceria





<?xml version="1.0" encoding="UTF-8" standalone="true"?>
-<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
-<Salida>
<IdentificadorTBAI>TBAI-73117194X-180821-cx9UaH5jyFGA3-138</IdentificadorTBAI>
<FechaRecepcion>18-08-2021 10:17:40</FechaRecepcion>
<Estado>00</Estado>
<Descripcion>Recibido</Descripcion>
<Azalpena>Jasota</Azalpena>
-<ResultadosValidacion>
<Codigo>008</Codigo>
<Descripcion>Aviso: Error en verificación de firma.</Descripcion>
<Azalpena>Abisua: Errorea sinadura egiaztatzean.</Azalpena>
</ResultadosValidacion>
Responder Con Cita
  #12  
Antiguo 18-08-2021
tejano tejano is offline
Miembro
 
Registrado: dic 2020
Posts: 128
Poder: 4
tejano Va por buen camino
El comando para Vizcaya es este
AutoFirmaCommandLine.exe sign -i fichero_a_firmar -o fichero_firmado -store pkcs12:certificado_p12 -password password_certificado -filter certificado_p12
-format xades -xml -config "format=XAdES Enveloped \npolicyIdentifier=identificativo \npolicyIdentifierHash=codigo_HASH \npolicyIdentifierHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256 \npolicyQualifier=identificativo

Si miras en el foro verás varios mensajes relativos a esto.
Responder Con Cita
  #13  
Antiguo 18-08-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Tejano está en lo cierto...
Aunque le falte unas comillas para cerrar el valor del parametro -config... :b ...

yo además añadiría que hay que mirar el primer mensaje, que es donde está recopilados todos los post con código, documentación y temas vitales...

Última edición por iMia fecha: 18-08-2021 a las 16:01:27.
Responder Con Cita
  #14  
Antiguo 12-08-2021
Nessie Nessie is offline
Miembro
 
Registrado: ago 2021
Posts: 13
Poder: 0
Nessie Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Buenos días.
Puestos a escoger una opción de las 2 a implementar, creo que la de las líneas es más lógica (además de la más habitual).
Sólo se me ocurre en tu caso, que apliques el descuento a una línea calculando cual sería (si es posible), o que lo prorratees en todas las líneas de la factura (teniendo en cuenta posibles errores de redondeo).

Gracias por la respuesta, Neftalí.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3557 Hace 1 Semana 17:42:47
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 18:51:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi