Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice (https://www.clubdelphi.com/foros/showthread.php?t=91252)

CMB 26-05-2017 20:28:32

Cita:

Empezado por seccion_31 (Mensaje 517218)
no esperéis a enviar el dia 8 de Julio. (porque fallara)

¿Qué es exactamente lo que fallará el 8 de julio?

Saludos,

brincola 26-05-2017 21:10:25

Cita:

Empezado por xerkan (Mensaje 517148)
Perdon pero intentando modificar una cosa de mi post borre los archivos, os los e vuelto a subir para que podais hacer uso de ellos

Ante todo, agradecer la colaboración en este hilo de tanta gente desinteresada.
Respecto a los archivos subidos por xerkan: tengo más de un certificado instalado en mi equipo y no me aparece ninguno en el combo. Se limita a decirme al inicio (cuando carga el combo) que no hay certificados. ¿Qué es lo que puede estar yendo mal? Gracias anticipadas, compañeros.
A ver si podemos con ello, pero tendremos que organizar(nos) en este hilo (veo la información muy dispersa de momento y con 65 páginas actualmente al que entre aquí lo puede tumbar de espaldas). Un saludo.

CMB 26-05-2017 22:24:28

Factura duplicada ha dejado de suministrar el CSV
 
Con la versión 0.7, el pasado 21 de mayo la respuesta para el alta de una factura duplicada, tal como está anunciado, daba:

Cita:

<siiR:EstadoRegistro>Incorrecto</siiR:EstadoRegistro>
<siiR:CodigoErrorRegistro>3000</siiR:CodigoErrorRegistro>
<siiR:DescripcionErrorRegistro>Factura duplicada</siiR:DescripcionErrorRegistro>
<siiR:CSV>TQTEBQNQ6VFCDKKZ</siiR:CSV>
</siiR:RespuestaLinea>
</siiR:RespuestaLRFacturasEmitidas>
</env:Body>
</env:Envelope>
Hoy ya no lo suministra, ni con facturas emitidas ni con recibidas, como si fuese la versión 0.6 o anterior:

Cita:

<siiR:EstadoRegistro>Incorrecto</siiR:EstadoRegistro>
<siiR:CodigoErrorRegistro>3000</siiR:CodigoErrorRegistro>
<siiR:DescripcionErrorRegistro>Factura duplicada</siiR:DescripcionErrorRegistro>
</siiR:RespuestaLinea>
</siiR:RespuestaLRFacturasEmitidas>
</env:Body>
</env:Envelope>
Esto estropea el parsing de la respuesta, pues se busca el CSV y no se encuentra.

¿Alguien más se ha encontrado con esto?

Nota: El envío lo hago con '0.7' como versión.

Saludos,

brincola 26-05-2017 23:15:10

CMB, aún no estoy ahí. Tratando de mandar certificado (por programa) sin éxito.

nuevo1234 26-05-2017 23:18:09

Cita:

Empezado por CMB (Mensaje 517236)
Con la versión 0.7, el pasado 21 de mayo la respuesta para el alta de una factura duplicada, tal como está anunciado, daba:

Hoy ya no lo suministra, ni con facturas emitidas ni con recibidas, como si fuese la versión 0.6 o anterior:

Esto estropea el parsing de la respuesta, pues se busca el CSV y no se encuentra.

¿Alguien más se ha encontrado con esto?

Nota: El envío lo hago con '0.7' como versión.

Saludos,

Si es una factura enviada anterior a la versión 0.7 no tiene csv

CMB 27-05-2017 10:30:51

Cita:

Empezado por nuevo1234 (Mensaje 517241)
Si es una factura enviada anterior a la versión 0.7 no tiene csv

Pues tienes razón. Lo sabía pero no caí en ello.

Muchas gracias.
Saludos,

brincola 27-05-2017 17:15:37

Acerca del problema con los certificados no hallados: estando instalados en Firefox no los hallaba. Al instalarlos en Internet Explorer ya aparecen (¿Microsoft barriendo siempre para casa con crypt32.dll CAPICOM?).
Ahora peleando con: RECEIVED CONTENT of invalid content-type setting: text/html - SOAP expects "text/xml" al tratar de dar de alta la factura del ejemplo.

CMB 27-05-2017 19:35:49

Cita:

Empezado por brincola (Mensaje 517250)
Acerca del problema con los certificados no hallados: estando instalados en Firefox no los hallaba. Al instalarlos en Internet Explorer ya aparecen (¿Microsoft barriendo siempre para casa con crypt32.dll CAPICOM?).
Ahora peleando con: RECEIVED CONTENT of invalid content-type setting: text/html - SOAP expects "text/xml" al tratar de dar de alta la factura del ejemplo.

Iría bien que publiques el XML completo de la petición para analizarlo.

Saludos,

brincola 28-05-2017 00:50:57

Cita:

Empezado por CMB (Mensaje 517254)
Iría bien que publiques el XML completo de la petición para analizarlo.

Saludos,

CMB, de golpe y repente ha desaparecido el problema y todo lo probado rueda bien. He dado de alta dos facturas emitidas y dos recibidas como prueba, y sin problemas. El botón de consulta me muestra la información de todos los documentos entrados. He ido directamente a la WEB de la AEAT (Información técnica SII-->acceso al portal de pruebas del SII--->Consulta---> Emitidas o Recibidas) y allí están, sin más problemas.

Programas utilizados: los suministrados por xerkan en este mismo hilo (gracias compañero(s)).
Retoques: Utilizo habitualmente Firefox como navegador y allí tengo instalados los certificados. Al arrancar tanto el programa de facturas emitidas como el de recibidas la aplicación trataba de cargar los certificado y no los encontraba. Se los instalé en Internet Explorer y a partir de ahí me los mostraba todos.
Habrá que ir recapitulando conforme hagamos más pruebas. Por supuesto, agradecer a los que están por delante haciendo estos esfuerzos. Queda mucho trabajo por hacer aún, pero a mí no me parece ya que vayamos muy a ciegas. El archivo generado por la WSDL es monstruoso, con muchas estructuras, pero también tiene bastante de repetitivo. Los XSD no son pequeños, pero están ahí para hacer su trabajo. Sólo hay que animarse y organizarse.
Saludos.

P.D.: De lo leído por Internet, el error RECEIVED CONTENT of invalid content-type setting: text/html - SOAP expects "text/xml" parecer ser uno relacionado con el servidor y que suele/solía corregirse a veces intercambiando el orden de 2 unidades ISAPI en el .dpr. Que viniera del servidor parece bastante probable, ya que la AEAT está también de pruebas con nosotros, y más aún con el cambio de versión de la 0.6 a la 0.7. A ver si hay suerte y empieza ya a estabilizarse.

brincola 29-05-2017 08:22:20

¿Cómo/dónde interceptar, para echarles un vistazo, los textos de las XML generados y recibidos por la 'interface' proveniente de la WSDL de Hacienda?

Txemari 29-05-2017 09:38:31

Cauxa se exención
 
Hola, compañeros

¿vosotros informáis el campo "CausaExencion" ?

Saludos

CMB 29-05-2017 10:08:25

Cita:

Empezado por Txemari (Mensaje 517277)
Hola, compañeros
¿vosotros informáis el campo "CausaExencion" ?
Saludos

De momento yo no lo estoy haciendo, pero veo que en la versión 0.7 es obligatorio. Además es un poco liado, porque las causas son tan claras como esto

Exenta por el artículo 20
Exenta por el artículo 21
Exenta por el artículo 22
Exenta por el artículo 24
Exenta por el artículo 25
Exenta por Otros

¿Alguien sabe con certeza si es realmente obligatorio?

¿Y qué dicen esos artículos?

Saludos,

Txemari 29-05-2017 10:22:04

Obligatorio no es. Yo he enviado ficheros sin "CauxaExencion" y se lo traga. Lo que preguntaba es si veis necesidad de ponerlo o no . Si os parece que tiene alguna pega el no ponerlo...???


Cita:

Empezado por CMB (Mensaje 517278)
De momento yo no lo estoy haciendo, pero veo que en la versión 0.7 es obligatorio. Además es un poco liado, porque las causas son tan claras como esto

Exenta por el artículo 20
Exenta por el artículo 21
Exenta por el artículo 22
Exenta por el artículo 24
Exenta por el artículo 25
Exenta por Otros

¿Alguien sabe con certeza si es realmente obligatorio?

¿Y qué dicen esos artículos?

Saludos,


Txemari 29-05-2017 10:22:44

Cuando digo que he enviado es con la versión 0.7

Saldos

Cita:

Empezado por Txemari (Mensaje 517279)
Obligatorio no es. Yo he enviado ficheros sin "CauxaExencion" y se lo traga. Lo que preguntaba es si veis necesidad de ponerlo o no . Si os parece que tiene alguna pega el no ponerlo...???


newtron 29-05-2017 10:23:30

Cita:

Empezado por Txemari (Mensaje 517279)
Obligatorio no es. Yo he enviado ficheros sin "CauxaExencion" y se lo traga. Lo que preguntaba es si veis necesidad de ponerlo o no . Si os parece que tiene alguna pega el no ponerlo...???

Si mal no recuerdo en alguna de las preguntas frecuentes he leido que no es obligatorio y yo lo que no es obligatorio directamente no lo envío.

Saludos

mike_GK 29-05-2017 10:48:04

Cita:

Empezado por scooterjgm (Mensaje 517207)
Buenos días,

Utilizo delphi 7 y al utilizar el WSDL Importer, creo que me lo genera incompleto ya que al compilar me da el error '[Error] SuministroFactRecibidas.pas(44): Undeclared identifier: 'SuministroLRFacturasRecibidas'.

¿¿Cómo solucionaste este problema??

Gracias :)


Al final no pude hacerme con el WSDL Importer y los estoy creando a mano.

Y me decante por crearlo a mano y haciendo una conexion para enviar como el ejemplo que te facilitaron, ahi aun tengo que mirar si la conexion la hago por delphi o de forma externa

mike_GK 29-05-2017 10:50:38

Cita:

Empezado por newtron (Mensaje 517281)
Si mal no recuerdo en alguna de las preguntas frecuentes he leido que no es obligatorio y yo lo que no es obligatorio directamente no lo envío.

Saludos


Hola, en los casos no obligatorios tienes en cuenta si el cliente decidiese enviarlos por X motivo?

Lo normal seria solo enviar lo justo y necesario, pero siempre salen excepciones

newtron 29-05-2017 11:05:24

Cita:

Empezado por mike_GK (Mensaje 517283)
Hola, en los casos no obligatorios tienes en cuenta si el cliente decidiese enviarlos por X motivo?

Lo normal seria solo enviar lo justo y necesario, pero siempre salen excepciones

¿El cliente? pues sé pero no creo, nunca me he encontrado un cliente que quiera enviar más datos de los estrictamente necesarios, sobre todo en temas relacionados con el fisco.

CMB 29-05-2017 11:06:39

Cita:

Empezado por CMB (Mensaje 517278)
De momento yo no lo estoy haciendo, pero veo que en la versión 0.7 es obligatorio.

Me rectifico a mí mismo. Me confundí. En el documento SII_Descripcion_ServicioWeb_v0.7.pdf sale en negro, no en rojo.

Como bien dice newtron en el #1295, lo que no es obligatorio es mejor no ponerlo.

razorxxx 29-05-2017 11:10:54

Comprobar el código país
 
Hola a todos,

Estoy haciendo pruebas en cuanto a consulta de facturas emitidas. En su momento subí un archivo de libro de registro con 2 facturas dentro. Una de ellas tenía especificado IDOtro porque usaba método de identificación NIF-IVA, sin embargo no llevaba especificado CodigoPais.

Ahora bien, cuando las consulto para cargarlas en un StringGrid, hago:

Código:

RejillaConsulta.Cells[4,I+1]  := GetEnumName(TypeInfo(CountryType2), ord(DatosFacturaEmitida.Contraparte.IDOtro.CodigoPais));
Sin embargo, esa factura a la que no especifiqué CodigoPais me devuelve igualmente valor 0 en ord(DatosFacturaEmitida.Contraparte.IDOtro.CodigoPais), por lo que siempre me devuelve código país Afganistán.

¿Alguna idea sobre cómo detectar cuando no existe CodigoPais en la respuesta?

Gracias de antemano!

PepCat 29-05-2017 11:18:44

Cita:

Empezado por razorxxx (Mensaje 517286)


¿Alguna idea sobre cómo detectar cuando no existe CodigoPais en la respuesta?

Gracias de antemano!

has probado a comprobar si CodigoPais esta vacío antes de hacer la conversión.

seccion_31 29-05-2017 11:22:05

hola !

sobre que no funcionaria el sistema el dia 8 Julio fue por que no esperaramos a transmitir las facturas al ultimo dia, el dia 8. ya que seguramente colapsara.


Tengo una duda que no veo claro a ver si podeis ayudarme:

quiero anular una factura completamente: por ejemplo 1200. (para luego hacer una nueva con el nuevo importe) ¿Como la anularía? entiendo que debería ser por ... diferencia, es decir generar una contraria por valor de -1200. Quiero evitarme el proceso de sustitución, porque....

En la reunión el inspector menciono que era mejor hacerlo asi, emitir una negativa completa y después volver a hacer una nueva.

Saludos !

razorxxx 29-05-2017 11:22:15

Cita:

Empezado por PepCat (Mensaje 517287)
has probado a comprobar si CodigoPais esta vacío antes de hacer la conversión.

Trato de hacer algo como If DatosFacturaEmitida.Contraparte.IDOtro.CodigoPais <> nil Then, pero el Delphi me tira el error "Incompatible types".

¿Cómo hacéis vosotros la comparación?

keys 29-05-2017 11:26:11

Cita:

Empezado por razorxxx (Mensaje 517289)
Trato de hacer algo como If DatosFacturaEmitida.Contraparte.IDOtro.CodigoPais <> nil Then, pero el Delphi me tira el error "Incompatible types".

¿Cómo hacéis vosotros la comparación?

Mira que te devuelve la agencia en el caso del que el pais este en blanco y pones la condición antes de hacer la búsqueda. El CodigoPais no puede ser nunca nil, el que puede ser nil es IDOTRO.

seccion_31 29-05-2017 11:27:46

hay que verificiar los nulos. según la estructura que devuelve ciertos objetos "del árbol" no están creados

igual seria:

DatosFacturaEmitida.Contraparte.IDOtro<>nil

uuummm

edito:

y codigopaís no puede compararse con nulo.

saludos !

vboloradito 29-05-2017 11:28:18

Cita:

Empezado por seccion_31 (Mensaje 517288)
hola !

sobre que no funcionaria el sistema el dia 8 Julio fue por que no esperaramos a transmitir las facturas al ultimo dia, el dia 8. ya que seguramente colapsara.


Tengo una duda que no veo claro a ver si podeis ayudarme:

quiero anular una factura completamente: por ejemplo 1200. (para luego hacer una nueva con el nuevo importe) ¿Como la anularía? entiendo que debería ser por ... diferencia, es decir generar una contraria por valor de -1200. Quiero evitarme el proceso de sustitución, porque....

En la reunión el inspector menciono que era mejor hacerlo asi, emitir una negativa completa y después volver a hacer una nueva.

Saludos !

En teoria lo correcto es hacer una factura rectificativa por sustitución Lo que tu intentas hacer es una factura de Abono y eso no es "legal", pero es lo que todo el mundo hace y parece que hacienda se ha visto obligada a aceptarlo porque sino esto no tiraba para adelante.
Yo todas las facturas rectificativas las envio como diferencia.

razorxxx 29-05-2017 11:30:35

Cita:

Empezado por keys (Mensaje 517290)
Mira que te devuelve la agencia en el caso del que el pais este en blanco y pones la condición antes de hacer la búsqueda. El CodigoPais no puede ser nunca nil, el que puede ser nil es IDOTRO.

Lo que dije antes, me devuelve 0, que correspondería al país Afganistán. ¿Pero qué ocurriría en los casos en los que de verdad la factura sea para alguien de Afganistán?

Lo curioso es que aún devolviendo 0, no me genera la etiqueta CodigoPais en el XML de respuesta.

¿Alguna otra idea?

seccion_31 29-05-2017 11:31:10

si, eso lo entiendo

pero entiendo que la diferencia, la haría por el total de la factura que voy a abonar?

nadie esta planteándolo asi?

lo digo porque el inspector fue muy claro, intentando simplificarlo.

Saludos !

vboloradito 29-05-2017 11:35:10

Cita:

Empezado por CMB (Mensaje 517230)
¿Qué es exactamente lo que fallará el 8 de julio?

Saludos,

¿Fallara el dia 8 o el dia 12.?

En 2017 son 8 dias sin contar fines de semana u festivos nacionales. El dia 1 es sabado.
Entonces los 8 dias se cumplen el dia 12?

keys 29-05-2017 11:38:39

Cita:

Empezado por razorxxx (Mensaje 517293)
Lo que dije antes, me devuelve 0, que correspondería al país Afganistán. ¿Pero qué ocurriría en los casos en los que de verdad la factura sea para alguien de Afganistán?

Lo curioso es que aún devolviendo 0, no me genera la etiqueta CodigoPais en el XML de respuesta.

¿Alguna otra idea?

Si viene 0 en el pais y el idotro esta relleno, dependera del CID, ya que si es 02 tiene que ser o español o intracomunitario. Es decir con el CID <> 2 el pais es el que devuelve Afganistan, en caso de CID = 02 y PAis = 0 el pais esta en blanco.

newtron 29-05-2017 12:00:17

Cita:

Empezado por seccion_31 (Mensaje 517294)
si, eso lo entiendo

pero entiendo que la diferencia, la haría por el total de la factura que voy a abonar?

nadie esta planteándolo asi?

lo digo porque el inspector fue muy claro, intentando simplificarlo.

Saludos !

A ver.... todo depende de lo que te quieras complicar la vida porque hay varias formas de hacerlo. Puedes anular la factura y hacer otra correcta con otro número, puedes hacer una rectificativa por sustitución o directamente puedes hacer una negativa que sería una rectificativa por diferencias y otra que sería la correcta. Yo en particular creo que la última opción es la más fácil de manejar tanto para el programa como para el usuario.

De todas formas todo eso está explicado en el documento de "preguntas frecuentes" a partir de la página 16

Saludos

seccion_31 29-05-2017 12:04:03

si, al final lo haremos por diferencia.

pero ya te digo lo que hablo el inspector....

por diferencia según he hablado con contabilidad será lo mas correcto. en el peor peor de los casos la diferencia será por el importe total.

gracias.

seccion_31 29-05-2017 12:05:11

Cita:

Empezado por vboloradito (Mensaje 517295)
¿Fallara el dia 8 o el dia 12.?

En 2017 son 8 dias sin contar fines de semana u festivos nacionales. El dia 1 es sabado.
Entonces los 8 dias se cumplen el dia 12?

jajajaja... no se, no he visto el calendario.

es lo que dijo el inspector...

también dijo que .... "Si el SII sigue el año que viene...."

asi que imaginaros.

razorxxx 29-05-2017 12:17:32

Cita:

Empezado por keys (Mensaje 517296)
Si viene 0 en el pais y el idotro esta relleno, dependera del CID, ya que si es 02 tiene que ser o español o intracomunitario. Es decir con el CID <> 2 el pais es el que devuelve Afganistan, en caso de CID = 02 y PAis = 0 el pais esta en blanco.

Entendido y funcionando.

Gracias!

No obstante, veo en la unit generada por el WSDL Importer que existe el valor booleano "CodigoPais_Specified". ¿No debería ser ésta la variable a chequear en caso de que el CodigoPais esté vacío?

seccion_31 29-05-2017 14:39:38

tranquilos que no hay que esperar al dia 8 o al 12, ahora mismo falla:

"Error en el soporte del canal seguro"

Intentas acceder via web y tampoco.

Saludos !

seccion_31 29-05-2017 15:25:26

ahora ya va de nuevo. (la web)

desde aplicación sigue fallando.

edito:

en web error 403 (antes 999)
y en aplicación falla igual.

afxe 29-05-2017 15:59:02

Sobre error de las 13 facturas
 
Saludos a todos.
Como otros, he tenido el problema del fallo de falta de certificado cuando se envía más de 12 facturas... he releído varias veces este hilo (uffff) y la verdad es que está empezando a ser poco aclaratorio remitirse aquí para encontrar soluciones... Pero he encontrado algo que os puede ser de ayuda. El método que se posteó al principio, y del cual casi todos hemos empezado a tirar, proponía:
Código Delphi [-]
procedure TFrmMain.HTTPRIO_EMIHTTPWebNode1BeforePost(
  const HTTPReqResp: THTTPReqResp; Data: Pointer);
var
  Store : IStore;
  Certs : ICertificates;
  Cert : ICertificate2;
  CertContext : ICertContext;
  PCertContext : PCCERT_CONTEXT;
  V : OleVariant;
  Certificado : String;
const
  INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84;
begin
  V := BUSCAR_CERTIFICADO(cbCertificados.text); // subject del certificado instalado: Nombre de la empresa, no el HASH
  Store := CoStore.Create;
  Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED );
  Certs := Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, V, False ); // Buscar certificado por nombre
  if Certs.Count > 0 then begin
    Cert := IInterface(Certs.Item[1]) as ICertificate2;
    CertContext := Cert as ICertContext;
    CertContext.Get_CertContext(Integer(PCertContext));
    if InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, Sizeof(CERT_CONTEXT)) = False then
    begin
      ShowMessage( 'Certificado SSL. Algo ha fallado.' );
    end;
  end;
end;

la función BUSCA_CERTIFICADO pasando como parámetro el nombre del certificado te devolvía el GetCertSerialNumber de dicho certificado, el cual hay que usar en otro sitio, pero no aquí, ya que hay que hacer el Store.Certificates.Find pasando el "nombre del certificado" no su SerialNumber, por lo cual debería ser
Código Delphi [-]
V := cbCertificados.Text;
Así se traga todas las facturas que le eches. Esto lo he sacado también de algún ejemplo que han posteado en este hilo, por lo cual quien haya tirado de ese ejemplo estaría trabajando sin problemas, y los estamos tirando desde el inicio, y no habíamos vuelto a repasar esa parte, a la de 13 facturas.... Curiosamente, si enviabas las facturas en bloques de 10, o una a una, todo funcionaba sin problemas, a pesar de que realmente, no estábamos cargando en la Api el certificado. ¿?¿?¿?

No sé si cuando dejemos de estar en pruebas cascará el programa si no cargamos el certificado correctamente.

Galahad 29-05-2017 16:03:04

cuotadeducible
 
una pregunta rápida.

Me acabo de dar cuenta que en el campo 'cuotadeducible' de facturas recibidas, hasta ahora siempre estaba poniendo la base imponible (aquí en este hilo hay varios ejemplos en los que se hace así también). ¿ Es esto correcto ?, Creo que no , entiendo que el campo cuotadeducible deberia de tener el importe de los impuestos (ivas) que el cliente se puede deducir de la factura del proveedor.

Lo que no entiendo es como he mandado más de 5000 facturas de prueba con eso y no me ha dado ningún error. ¿ o es que estoy equivocado y realmente se manda la base impoinible ? .

En caso de que se mande el importe de iva, supongo que si tiene recargo tambien.

Saludos...

CMB 29-05-2017 16:08:10

Cita:

Empezado por Galahad (Mensaje 517308)
una pregunta rápida.
Me acabo de dar cuenta que en el campo 'cuotadeducible' de facturas recibidas, hasta ahora siempre estaba poniendo la base imponible (aquí en este hilo hay varios ejemplos en los que se hace así también). ¿ Es esto correcto ?, Creo que no , entiendo que el campo cuotadeducible deberia de tener el importe de los impuestos (ivas) que el cliente se puede deducir de la factura del proveedor.
Lo que no entiendo es como he mandado más de 5000 facturas de prueba con eso y no me ha dado ningún error. ¿ o es que estoy equivocado y realmente se manda la base impoinible ? .
En caso de que se mande el importe de iva, supongo que si tiene recargo tambien.
Saludos...

No tiene por qué dar error. En la gran mayoría de los casos, la cuota deducible es igual que la base imponible. Pero puede haber casos en que no. Si en una gran superficie te hacen una factura que incluye un pen drive y 1 kg de manzanas, por ejemplo, te podrás deducir el pen drive pero no la fruta.

Esta innovación supongo que será para el contraste, pues el total factura tiene que coincidir con lo que declare tu proveedor, independientemente de que te lo puedas deducir todo o sólo una parte.

seccion_31 29-05-2017 16:10:17

al final lo de enviar mas de 12 facturas se soluciono:

Código:

procedure TfEmitidas.emitidasHTTPWebNode1BeforePost(
  const HTTPReqResp: THTTPReqResp; Data: Pointer);
var
    Store : IStore;
    Certs : ICertificates;
    Cert : ICertificate2;
    CertContext : ICertContext;
    PCertContext : PCCERT_CONTEXT;
    V : OleVariant;
 const
    INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84;
 begin

    V:=comboBox1.Text;

    Store := CoStore.Create;
    Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED );
    Certs:=Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME,V,False ); { Buscar certificado por nombre }
    if Certs.Count > 0 then
    begin
        Cert:=IInterface(Certs.Item[1]) as ICertificate2;
        CertContext:=Cert as ICertContext;
        CertContext.Get_CertContext(Integer(PCertContext));
        if InternetSetOption(Data,INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext,Sizeof(CERT_CONTEXT)) = False then
        begin
            ShowMessage( 'Internet SSL certificate. Something went wrong' );
        end;
    end;
 end;

(en comboBox1 tengo el nombre del certificado)


La franja horaria es GMT +2. Ahora son las 19:12:12.

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