Suministro Inmediato de Informacion - SII
- AngelSalom
- Posts: 727
- Joined: Fri Oct 07, 2005 7:38 am
- Location: Benicarló (Castellón ) - España
- Has thanked: 1 time
- Contact:
Re: Suministro Inmediato de Informacion - SII
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
- Julio Cepeda
- Posts: 65
- Joined: Wed Oct 12, 2005 6:58 pm
Re: Suministro Inmediato de Informacion - SII
Hola a todos,
Me presento: me llamo Juan Pedro.
Mantengo varios programas: algunos en fwh, otros en modo consola con harbour.
Recientemente la empresa para la que trabajo se ha subscrito al REDEME. Vaya sorpresa para mi !
Rapidamente empecé el desarrollo... y pensé... quizá en el foro tengan algo hecho o se haya formado un grupo de trabajo al respecto.
Por lo que he visto no se ha formado ningun grupo de trabajo.
Yo por mi parte ya he hecho pruebas de comunicacion, tengo desarrolladas la parte de emitidas y recibidas... y me preguntaba:
¿ A alguien por aqui le interesa formar un grupo de trabajo, y asi terminar el sistema antes ?
Saludos
Me presento: me llamo Juan Pedro.
Mantengo varios programas: algunos en fwh, otros en modo consola con harbour.
Recientemente la empresa para la que trabajo se ha subscrito al REDEME. Vaya sorpresa para mi !
Rapidamente empecé el desarrollo... y pensé... quizá en el foro tengan algo hecho o se haya formado un grupo de trabajo al respecto.
Por lo que he visto no se ha formado ningun grupo de trabajo.
Yo por mi parte ya he hecho pruebas de comunicacion, tengo desarrolladas la parte de emitidas y recibidas... y me preguntaba:
¿ A alguien por aqui le interesa formar un grupo de trabajo, y asi terminar el sistema antes ?
Saludos
Re: Suministro Inmediato de Informacion - SII
Buenas Juan
Nosotros hemos invertido bastante tiempo en hacer una librería muy robusta, en el cual ya está al 90% terminada completamente el Suministro Inmediato de Información,
y todo el tema referente a las facturas emitidas y recibidas ya hace tiempo que la tenemos en beta, y algunos usuarios ya la están usando, y reportando diversos casos de uso.
Hemos ido más allá y somos capaces de brindar apoyo a otros lenguajes a través de una DLL, todo ello en puro Harbour.
Pego un pantallazo que acabo de hacer en Delphi, como a través de la DLL.
Este código de Delphi, es exactamente igual en Harbour ;
En (x)Harbour, prácticamente es igual, salvando las distancias entre lenguajes;
Suerte con el proyecto!
Nosotros hemos invertido bastante tiempo en hacer una librería muy robusta, en el cual ya está al 90% terminada completamente el Suministro Inmediato de Información,
y todo el tema referente a las facturas emitidas y recibidas ya hace tiempo que la tenemos en beta, y algunos usuarios ya la están usando, y reportando diversos casos de uso.
Hemos ido más allá y somos capaces de brindar apoyo a otros lenguajes a través de una DLL, todo ello en puro Harbour.
Pego un pantallazo que acabo de hacer en Delphi, como a través de la DLL.
Este código de Delphi, es exactamente igual en Harbour ;
Code: Select all | Expand
oServicio := oGtxSII.New('SuministroLRFacturasEmitidas');
oRequest := oServicio.oRequest;
// Rellenamos cabecera
oCabecera := oRequest.Cabecera;
oCabecera.Titular.NIF := Edit2.Text;
oCabecera.Titular.NombreRazon := Edit1.Text;
oCabecera.Titular.NIFRepresentante := Edit3.Text;
oCabecera.TipoComunicacion := 'A0';
oFacturaEmitida := oRequest.GetFactura();
oFacturaEmitida.PeriodoImpositivo.Ejercicio := 2017;
oFacturaEmitida.PeriodoImpositivo.Periodo := '03';
oFacturaEmitida.IDFactura.NIF := Edit2.Text;
oFacturaEmitida.IDFactura.NumSerieFacturaEmisor := Edit4.Text;
oFacturaEmitida.IDFactura.FechaExpedicionFacturaEmisor := StrToDate(Edit5.Text);
oFacturaEmitida.FacturaExpedida.TipoFactura := 'F1';
oFacturaEmitida.FacturaExpedida.ClaveRegimenEspecialOTrascendencia := '01';
oFacturaEmitida.FacturaExpedida.ImporteTotal := 270.00;
oFacturaEmitida.FacturaExpedida.DescripcionOperacion := 'Ventas de productos';
oFacturaEmitida.FacturaExpedida.Contraparte.NombreRazon := 'EMPRESAXXXX';
oFacturaEmitida.FacturaExpedida.Contraparte.NIFRepresentante := '';
oFacturaEmitida.FacturaExpedida.Contraparte.NIF := 'A17035080';
Sujeta := oFacturaEmitida.FacturaExpedida.TipoDesglose.DesgloseFactura.Sujeta;
Sujeta.TipoNoExenta := 'S1';
// Detalle del IVA, un objeto oDetalleIVA por cada base
oDetalleIVA := Sujeta.GetDetalleIVA();
oDetalleIVA.TipoImpositivo := 21;
oDetalleIVA.BaseImponible := 123.97;
oDetalleIVA.CuotaRepercutida := 26.03 ;
oDetalleIVA.TipoRecargoEquivalencia := 0 ;
oDetalleIVA.CuotaRecargoEquivalencia := 0 ;
// Creamos una segunda factura , cambiando solo la numeración
oFacturaEmitida := oRequest.GetFactura();
oFacturaEmitida.PeriodoImpositivo.Ejercicio := 2017;
oFacturaEmitida.PeriodoImpositivo.Periodo := '03';
oFacturaEmitida.IDFactura.NIF := Edit2.Text;
oFacturaEmitida.IDFactura.NumSerieFacturaEmisor := Edit4.Text + 'B';
oFacturaEmitida.IDFactura.FechaExpedicionFacturaEmisor := StrToDate(Edit5.Text);
oFacturaEmitida.FacturaExpedida.TipoFactura := 'F1';
oFacturaEmitida.FacturaExpedida.ClaveRegimenEspecialOTrascendencia := '01';
oFacturaEmitida.FacturaExpedida.ImporteTotal := 270.00;
oFacturaEmitida.FacturaExpedida.DescripcionOperacion := 'Ventas de productos';
oFacturaEmitida.FacturaExpedida.Contraparte.NombreRazon := 'EMPRESAXXXX';
oFacturaEmitida.FacturaExpedida.Contraparte.NIFRepresentante := '';
oFacturaEmitida.FacturaExpedida.Contraparte.NIF := 'A17035080';
Sujeta := oFacturaEmitida.FacturaExpedida.TipoDesglose.DesgloseFactura.Sujeta;
Sujeta.TipoNoExenta := 'S1';
// Detalle del IVA, un objeto oDetalleIVA por cada base
oDetalleIVA := Sujeta.GetDetalleIVA();
oDetalleIVA.TipoImpositivo := 21;
oDetalleIVA.BaseImponible := 123.97;
oDetalleIVA.CuotaRepercutida := 26.03 ;
oDetalleIVA.TipoRecargoEquivalencia := 0 ;
oDetalleIVA.CuotaRecargoEquivalencia := 0 ;
// Firma y envío
if oServicio.Send() then
begin
Memo2.Text := oRequest.GetXML();
self.viewResponse( );
end
else
begin
Memo2.Text := oRequest.GetXML();
if oServicio.nHostError = -1 then
begin
Memo3.Text := 'Incidencia detectada:' + IntToStr( oServicio.nHostError )+ '#' + oServicio.cHostErrorMsg;
end
else
self.viewResponse( );
end;
En (x)Harbour, prácticamente es igual, salvando las distancias entre lenguajes;
Code: Select all | Expand
oServicio:= GtxSii():New("SuministroLRFacturasEmitidas")
// Cabecera
with object ( oServicio:oRequest )
:Cabecera:Titular:NombreRazon := "GETEX INFORMATICA SCP"
:Cabecera:Titular:NIFRepresentante := ""
:Cabecera:Titular:NIF := "J66767849"
:Cabecera:TipoComunicacion := "A0" // Enum A0, A1, A4
end with
// Crear detalle de factura
oFacturaEmitida := oServicio:oRequest:GetFactura()
with object (oFacturaEmitida)
:PeriodoImpositivo:Ejercicio := 2017
:PeriodoImpositivo:Periodo := "03"
:IDFactura:NIF := "J66767849"
:IDFactura:NumSerieFacturaEmisor := "FACTURA-006"
:IDFactura:FechaExpedicionFacturaEmisor := date()
with object (:FacturaExpedida)
:TipoFactura := "F1"
:ClaveRegimenEspecialOTrascendencia := "01"
:ImporteTotal := 270.00
:DescripcionOperacion := "Ventas de productos"
:Contraparte:NombreRazon := "EMPRESAXXXX"
:Contraparte:NIFRepresentante := ""
:Contraparte:NIF := "A17035080"
with object (:TipoDesglose:DesgloseFactura:Sujeta)
:TipoNoExenta := 'S1'
// Detalle del IVA, un objeto oDetalleIVA por cada base
oDetalleIVA := :GetDetalleIVA()
with object (oDetalleIVA)
:TipoImpositivo := 21
:BaseImponible := 123.97
:CuotaRepercutida := 26.03
:TipoRecargoEquivalencia := 0
:CuotaRecargoEquivalencia := 0
end
// Detalle del IVA, un objeto oDetalleIVA por cada base
oDetalleIVA := :GetDetalleIVA()
with object (oDetalleIVA)
:TipoImpositivo := 0
:BaseImponible := 120.00
:CuotaRepercutida := 0
:TipoRecargoEquivalencia := 0
:CuotaRecargoEquivalencia := 0
end
end
end
end
if oServicio:Send()
viewResponse( oServicio:oResponse )
else
? oServicio:nHostError, oServicio:cHostErrorMsg
if oServicio:nHostError != -1
viewResponse( oServicio:oResponse )
endif
endif
Suerte con el proyecto!
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Re: Suministro Inmediato de Informacion - SII
Hola,
Si me permites... no entiendo lo de "muy robusta". ¿ Que robustez se precisa para generar un xml-texto y enviarlo por https y recibir automaticamente un xml como respuesta ?
En cuanto a otros lenguajes y su desarrollo. Lo que estoy desarrollando esta en codigo prg-harbour, no necesito mas: en 200 lineas tengo el alta, modificacion, rectificativas por sustitucion y diferencias de emitidas, y de una manera super sencilla y un codigo fuente que cualquiera entiende.
He visto que el hilo no tiene mucho movimiento. Quizá la mayoría no están obligados. Sólo sé que falta un mes y medio para el lanzamiento del sistema y hay que darse prisa. Solo queria saber si alguno queria unirse. Sino, también seguiré
Suerte con tu libreria.
Si me permites... no entiendo lo de "muy robusta". ¿ Que robustez se precisa para generar un xml-texto y enviarlo por https y recibir automaticamente un xml como respuesta ?
En cuanto a otros lenguajes y su desarrollo. Lo que estoy desarrollando esta en codigo prg-harbour, no necesito mas: en 200 lineas tengo el alta, modificacion, rectificativas por sustitucion y diferencias de emitidas, y de una manera super sencilla y un codigo fuente que cualquiera entiende.
He visto que el hilo no tiene mucho movimiento. Quizá la mayoría no están obligados. Sólo sé que falta un mes y medio para el lanzamiento del sistema y hay que darse prisa. Solo queria saber si alguno queria unirse. Sino, también seguiré
Suerte con tu libreria.
Re: Suministro Inmediato de Informacion - SII
Hola Juan
Me refiero a "robusta" a que todo el sistema es un modelo basado en objetos, a día de hoy son 127 clases, y adaptaciones para ser usado en otros lenguajes,
siguiendo los XSD de la AET, en mi empresa usamos más de un lenguaje de programación, a parte de Harbour, por ello la existencia de la DLL.
Quizás sea más sencillo crear un texto de XML y reemplazarlo por valores los campos que necesitemos;
Ahí no entro a discutir. Mi experiencia me dice que eso al final puede ser contraproducente.
Si no tienes inconveniente, ¿ podrías mostrarnos un poco el camino que has seguido ?
Saludos
Me refiero a "robusta" a que todo el sistema es un modelo basado en objetos, a día de hoy son 127 clases, y adaptaciones para ser usado en otros lenguajes,
siguiendo los XSD de la AET, en mi empresa usamos más de un lenguaje de programación, a parte de Harbour, por ello la existencia de la DLL.
Quizás sea más sencillo crear un texto de XML y reemplazarlo por valores los campos que necesitemos;
Code: Select all | Expand
hFile := fcreate("xml")
fwrite( hFile, "xml......etc" )
fclose( hFile )
Ahí no entro a discutir. Mi experiencia me dice que eso al final puede ser contraproducente.
Si no tienes inconveniente, ¿ podrías mostrarnos un poco el camino que has seguido ?
Saludos
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
- Carles
- Posts: 1149
- Joined: Fri Feb 10, 2006 2:34 pm
- Location: Barcelona
- Been thanked: 6 times
- Contact:
Re: Suministro Inmediato de Informacion - SII
Rafa,
Bona feina ! -> Anims !
Bona feina ! -> Anims !
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
"...programar es fácil, hacer programas es difícil..."
UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
Re: Suministro Inmediato de Informacion - SII
Hola Juanp
Yo voy a hacer algo parecido a lo que haces tu. Programo en xbase++.
Intenté usar una librería para generar y parsear los xml. Aunque está escrita es xbase y publicaron los fuente solo me funcionaba al 99%, así que al final escribo el xml como texto y leo la respuesta con memoread. Lo que he hecho para leer las respuestas de Aeat es muy chapucero, pero funciona.
De momento me han encargado dos adaptaciones muy sencillas, solo facturas enviadas y recibidas. Si me encargan algo mas complejo compraría lo que ha hecho Rafa Carmona que resuelve todos los casos, y que a largo plazo seguro que merece la pena.
Cuando quieras te envio mis 300 lineas de prg
Jose Manuel
juanp wrote:
Hola,
Si me permites... no entiendo lo de "muy robusta". ¿ Que robustez se precisa para generar un xml-texto y enviarlo por https y recibir automaticamente un xml como respuesta ?
En cuanto a otros lenguajes y su desarrollo. Lo que estoy desarrollando esta en codigo prg-harbour, no necesito mas: en 200 lineas tengo el alta, modificacion, rectificativas por sustitucion y diferencias de emitidas, y de una manera super sencilla y un codigo fuente que cualquiera entiende.
He visto que el hilo no tiene mucho movimiento. Quizá la mayoría no están obligados. Sólo sé que falta un mes y medio para el lanzamiento del sistema y hay que darse prisa. Solo queria saber si alguno queria unirse. Sino, también seguiré
Suerte con tu libreria.
Jose Valle
Bilbao
Spain
Yo voy a hacer algo parecido a lo que haces tu. Programo en xbase++.
Intenté usar una librería para generar y parsear los xml. Aunque está escrita es xbase y publicaron los fuente solo me funcionaba al 99%, así que al final escribo el xml como texto y leo la respuesta con memoread. Lo que he hecho para leer las respuestas de Aeat es muy chapucero, pero funciona.
De momento me han encargado dos adaptaciones muy sencillas, solo facturas enviadas y recibidas. Si me encargan algo mas complejo compraría lo que ha hecho Rafa Carmona que resuelve todos los casos, y que a largo plazo seguro que merece la pena.
Cuando quieras te envio mis 300 lineas de prg
Jose Manuel
juanp wrote:
Hola,
Si me permites... no entiendo lo de "muy robusta". ¿ Que robustez se precisa para generar un xml-texto y enviarlo por https y recibir automaticamente un xml como respuesta ?
En cuanto a otros lenguajes y su desarrollo. Lo que estoy desarrollando esta en codigo prg-harbour, no necesito mas: en 200 lineas tengo el alta, modificacion, rectificativas por sustitucion y diferencias de emitidas, y de una manera super sencilla y un codigo fuente que cualquiera entiende.
He visto que el hilo no tiene mucho movimiento. Quizá la mayoría no están obligados. Sólo sé que falta un mes y medio para el lanzamiento del sistema y hay que darse prisa. Solo queria saber si alguno queria unirse. Sino, también seguiré
Suerte con tu libreria.
Jose Valle
Bilbao
Spain
Jose Valle
Bilbao
Spain
Bilbao
Spain
Re: Suministro Inmediato de Informacion - SII
?
Last edited by juanp on Thu May 18, 2017 6:03 pm, edited 2 times in total.
Re: Suministro Inmediato de Informacion - SII
Hola: Hay otros foros como el de delphi y velneo que están muy activos. Quizá no tenemos muchos clientes de mas de 6m pero también afecta a los que presentan el 303 mensual para recuperar el iva. Aunque a estos les están recomendando algunos gestores que renuncien para evitar el lío del sii.
Jose Valle
Bilbao
Spain
Bilbao
Spain
Re: Suministro Inmediato de Informacion - SII
juanp wrote:Hola José,
Pero, para no interrumpir el silencio, deberíamos contactar y comentar lo muuuuucho que hay que comentar sobre el sii
Saludos
juanp,
Si compartimos nuestras opiniones en el foro, todos aprendemos
Saludos y gracias
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
- AngelSalom
- Posts: 727
- Joined: Fri Oct 07, 2005 7:38 am
- Location: Benicarló (Castellón ) - España
- Has thanked: 1 time
- Contact:
Re: Suministro Inmediato de Informacion - SII
Yo utilizo la librería de gtx que están ahí dándole Rafa y Quím. Tengo pocos clientes que necesiten presentarlo pero ahí están.
Podemos intercambiar opiniones y experiencias de la operativa, yo creo que en abierto mejor, ¿no?
Podemos intercambiar opiniones y experiencias de la operativa, yo creo que en abierto mejor, ¿no?
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Re: Suministro Inmediato de Informacion - SII
?
Last edited by juanp on Thu May 18, 2017 6:03 pm, edited 2 times in total.
Re: Suministro Inmediato de Informacion - SII
Code: Select all | Expand
#include "ANDUP.CH"
#include "Common.ch"
#include "AppEvent.ch"
#include "Gra.ch"
#include "Font.ch"
FUNC SiiFacCli()
****************
LOCAL cFich :="m:\Factura.xml"
LOCAL nLonPreg1 := 15
LOCAL nLonPreg2 := 30
PRIVATE ProgList := ProcName()
PRIVATE cFecha
PRIVATE cEjerFac
PRIVATE cPerFac
PRIVATE cFichTemp := vsTemp+"SiiFacEmit.dbf"
PRIVATE cFichXml := ValidDir(vsUBIC_SII)+"FacturasEmitidas.xml"
PRIVATE CL_FECHI := CTOD("")
PRIVATE CL_FECHF := CTOD("")
PRIVATE CL_DIR_SAL := "C:\EFAC"
PRIVATE CL_SERIE := SPACE(2)
PRIVATE CL_FACI := 0
PRIVATE CL_FACF := 0
PRIVATE CL_EXCLU_ENV := "S"
IniVarListado()
SELE EMP
SEEK G_COD_EMP
IF !Found()
MsgBox("No existe la empresa "+G_COD_EMP)
RETURN .t.
ENDIF
mCifEmpresa := trim(LimpiaCif(EMP->CIF))
dbpan("Envio Facturas clientes a Aeat")
@ 4,2 SAY CIDI("DESDE FECHA" , nLonPreg1,"R") GET CL_FECHI VALID GETFECHA(@CL_FECHI)
@ 5,2 SAY CIDI("HASTA FECHA" , nLonPreg1,"R") GET CL_FECHF VALID GETFECHA(@CL_FECHF)
@ 7,2 SAY CIDI("SERIE" , nLonPreg1,"R") GET CL_SERIE
@ 8,2 SAY CIDI("DE FACTURA" , nLonPreg1,"R") GET CL_FACI PICT "@Z ######"
@ 9,2 SAY CIDI("A FACTURA" , nLonPreg1,"R") GET CL_FACF PICT "@Z ######"
@ 11,2 SAY CIDI("EXCLUIR ENVIADAS (S/N)" , nLonPreg2,"R") GET CL_EXCLU_ENV PICT "!" VALID CL_EXCLU_ENV $ "SN"
@ 20,2 SAY "Fichero:" + cFichXml+"*"
LeeSale
@ 13,2 CLEAR TO 21,78
GuardaConfiguracion()
IF !EMPTY(CL_FACI) .AND. EMPTY(CL_FACF)
CL_FACF := CL_FACI
ENDIF
SELE FAC
COPY TO (cFichTemp) ;
FOR FECHA >= CL_FECHI;
.AND. (FECHA <=CL_FECHF .OR. EMPTY(CL_FECHF)) ;
.AND. (COD_SER=CL_SERIE .OR. EMPTY(CL_SERIE));
.AND. NUM_FAC >= CL_FACI;
.AND. (NUM_FAC <= CL_FACF .OR. EMPTY(CL_FACF));
.AND. (EMPTY(SII_CSV) .OR. CL_EXCLU_ENV="N" )
//Doy opcion a reenviar facturas que tengo registradas como correctas porque las han podido borrar de la aeat
USE (cFichTemp) ALIA BorrSii NEW EXCLUSIVE
GO TOP
cFecha := dtoc10(BorrSii->FECHA) //12/02/2018
cEjerFac := Subs(cFecha,7,4)
cPerFac := Subs(cFecha,4,2)
GeneraXml()
EnviaXmlSii()
SiiLeeResultado() //Marca las facturas
CierraBorr()
MSGBOX("Proceso Terminado")
RETURN .T.
FUNC GeneraXml()
****************
DELE FILE (cFichXml)
SET PRINTER TO (cFichXml)
SET PRINT ON
/*
? '<?xml version="1.0" encoding="UTF-8"?>'
? '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"'
? 'xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"'
? 'xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">'
*/
? '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"'
?? ' xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">'
? '<soapenv:Header/>'
? '<soapenv:Body>'
? '<siiLR:SuministroLRFacturasEmitidas>'
? ' <sii:Cabecera>'
? ' <sii:IDVersionSii>0.7</sii:IDVersionSii>'
? ' <sii:Titular>'
? ' <sii:NombreRazon>' + CtoSII(vsW) + '</sii:NombreRazon>'
? ' <sii:NIF>'+TRIM(mCifEmpresa)+'</sii:NIF>'
? ' </sii:Titular>'
? ' <sii:TipoComunicacion>A0</sii:TipoComunicacion>'
? '</sii:Cabecera>'
SELE BorrSii
GO TOP
DO WHILE !EOF()
Detalle()
************
SELE BorrSii
SKIP
*****
ENDDO
?
? '</siiLR:SuministroLRFacturasEmitidas>'
? '</soapenv:Body>'
? '</soapenv:Envelope>'
SET PRINTER TO
SET PRINT OFF
RETURN .T.
STATIC FUNC Detalle()
*********************
LOCAL nClaIva
PRIVATE cClaIva
? '<siiLR:RegistroLRFacturasEmitidas>'
? ' <sii:PeriodoImpositivo>'
? ' <sii:Ejercicio>' + cEjerFac + '</sii:Ejercicio>'
? ' <sii:Periodo>' + cPerFac + '</sii:Periodo>'
? ' </sii:PeriodoImpositivo>'
? '<siiLR:IDFactura>'
? ' <sii:IDEmisorFactura>'
? ' <sii:NIF>' + TRIM(mCifEmpresa) + '</sii:NIF>'
? ' </sii:IDEmisorFactura>'
? ' <sii:NumSerieFacturaEmisor>' + TRIM(BorrSii->COD_SER)+'-'+Ntc(BorrSii->NUM_FAC) +'</sii:NumSerieFacturaEmisor>'
? ' <sii:FechaExpedicionFacturaEmisor>' + cFecha +'</sii:FechaExpedicionFacturaEmisor>'
? '</siiLR:IDFactura>'
? '<siiLR:FacturaExpedida>'
? '<sii:TipoFactura>' +'F1' + '</sii:TipoFactura>'
? ' <sii:ClaveRegimenEspecialOTrascendencia>' +'01' + '</sii:ClaveRegimenEspecialOTrascendencia>'
? ' <sii:ImporteTotal>' +NTC(BorrSii->TOT_FAC,2) + '</sii:ImporteTotal>'
? ' <sii:DescripcionOperacion>'+ +CtoSII(BorrSii->DESCRIP) + '</sii:DescripcionOperacion>'
? ' <sii:Contraparte>'
? ' <sii:NombreRazon>' +CtoSII(BorrSii->RASO) + '</sii:NombreRazon>'
? ' <sii:NIF>' +TRIM(BorrSii->CIF) + '</sii:NIF>'
? ' </sii:Contraparte>'
? '<sii:TipoDesglose>'
? '<sii:DesgloseFactura>'
? '<sii:Sujeta>'
? '<sii:NoExenta>'
? ' <sii:TipoNoExenta>' +'S1' + '</sii:TipoNoExenta>'
? '<sii:DesgloseIVA>'
? '<sii:DetalleIVA>'
FOR nClaIva=1 TO 4
cClaIva:=ntc(nClaIva)
IF abs(BASE&cClaIva)>= 0.01
? ' <sii:TipoImpositivo>' + ntc(BorrSii->POR_IVA&cClaIva,2) +'</sii:TipoImpositivo>'
? ' <sii:BaseImponible>' + ntc(BorrSii->BASE&cClaIva ,2) +'</sii:BaseImponible>'
? ' <sii:CuotaRepercutida>' + ntc(BorrSii->IMP_IVA&cClaIva,2) +'</sii:CuotaRepercutida>'
? ' <sii:TipoRecargoEquivalencia>' + ntc(BorrSii->POR_REC&cClaIva,2) +'</sii:TipoRecargoEquivalencia>'
? ' <sii:CuotaRecargoEquivalencia>' + ntc(BorrSii->IMP_REC&cClaIva,2) +'</sii:CuotaRecargoEquivalencia>'
ENDIF
NEXT
? '</sii:DetalleIVA>'
? '</sii:DesgloseIVA>'
? '</sii:NoExenta>'
? '</sii:Sujeta>'
? '</sii:DesgloseFactura>'
? '</sii:TipoDesglose>'
? '</siiLR:FacturaExpedida>'
? '</siiLR:RegistroLRFacturasEmitidas>'
RETURN .T.
Jose Valle
Bilbao
Spain
Bilbao
Spain
Re: Suministro Inmediato de Informacion - SII
?
Last edited by juanp on Thu May 18, 2017 6:03 pm, edited 2 times in total.