Private Sub EnviaFacturaEmitida()
Dim sMsg As String
Dim sUrl As String
Dim sEnv As String
Dim XML_Node As IXMLDOMNode
Dim objHttp As Object
Dim XMLDoc As MSXML2.DOMDocument60
Me.TxtFechaPresentacion = vbNullString
Me.txtCsv = vbNullString
sUrl = "https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP"
sEnv = vbNullString
sEnv = sEnv & "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "UTF-8" & Chr(34) & "?>"
sEnv = sEnv & "<soapenv:Envelope xmlns:soapenv=" & Chr(34) & "http://schemas.xmlsoap.org/soap/envelope/" & Chr(34) & " xmlns:siiLR=" & Chr(34) _
& "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" & Chr(34) _
& " xmlns:sii=" & Chr(34) & "https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd" & Chr(34) & ">"
sEnv = sEnv & "<soapenv:Header/>"
sEnv = sEnv & "<soapenv:Body>"
sEnv = sEnv & "<siiLR:SuministroLRFacturasEmitidas>"
sEnv = sEnv & "<sii:Cabecera>"
sEnv = sEnv & "<sii:IDVersionSii>" & Trim(Me.txtVersionSII) & "</sii:IDVersionSii>"
sEnv = sEnv & "<sii:Titular>"
sEnv = sEnv & "<sii:NombreRazon>" & Trim(Me.cboEmpresa.Column(0)) & "</sii:NombreRazon>"
sEnv = sEnv & "<sii:NIF>" & Trim(Me.cboEmpresa.Column(1)) & "</sii:NIF>"
sEnv = sEnv & "</sii:Titular>"
sEnv = sEnv & "<sii:TipoComunicacion>" & Trim(Me.CboTipoComunicacionSII.Column(1)) & "</sii:TipoComunicacion>"
sEnv = sEnv & "</sii:Cabecera>"
sEnv = sEnv & "<siiLR:RegistroLRFacturasEmitidas>"
sEnv = sEnv & "<sii:PeriodoImpositivo>"
sEnv = sEnv & "<sii:Ejercicio>" & Trim(Me.cboAño) & "</sii:Ejercicio>"
sEnv = sEnv & "<sii:Periodo>" & Format(Trim(Me.FechaFactura), "mm") & "</sii:Periodo>"
sEnv = sEnv & "</sii:PeriodoImpositivo>"
sEnv = sEnv & "<siiLR:IDFactura>"
sEnv = sEnv & "<sii:IDEmisorFactura>"
sEnv = sEnv & "<sii:NIF>" & Trim(Me.cboEmpresa.Column(1)) & "</sii:NIF>"
sEnv = sEnv & "</sii:IDEmisorFactura>"
sEnv = sEnv & "<sii:NumSerieFacturaEmisor>" & Trim(Me.NumeroFactura) & "</sii:NumSerieFacturaEmisor>"
sEnv = sEnv & "<sii:FechaExpedicionFacturaEmisor>" & Format(Trim(FechaFactura), "dd-mm-yyyy") & "</sii:FechaExpedicionFacturaEmisor>"
sEnv = sEnv & "</siiLR:IDFactura>"
sEnv = sEnv & "<siiLR:FacturaExpedida>"
sEnv = sEnv & "<sii:TipoFactura>" & Trim(Me.CbotipoFActura.Column(1)) & "</sii:TipoFactura>"
sEnv = sEnv & "<sii:ClaveRegimenEspecialOTrascendencia>" & Trim(Me.CboTipoOperacionSII.Column(1)) & "</sii:ClaveRegimenEspecialOTrascendencia>" ' 01
sEnv = sEnv & "<sii:ImporteTotal>" & Replace(Format(Trim(Me.TotalFactura), "###0.00"), ",", ".") & "</sii:ImporteTotal>"
sEnv = sEnv & "<sii:DescripcionOperacion>" & Trim(TxtConceptoSII) & "</sii:DescripcionOperacion>"
sEnv = sEnv & "<sii:Contraparte>"
sEnv = sEnv & "<sii:NombreRazon>" & Trim(Me.txtCodigoContableProveedor) & "</sii:NombreRazon>"
sEnv = sEnv & "<sii:NIF>" & Trim(Me.txtnif) & "</sii:NIF>"
sEnv = sEnv & "</sii:Contraparte>"
sEnv = sEnv & "<sii:TipoDesglose>"
sEnv = sEnv & "<sii:DesgloseFactura>"
sEnv = sEnv & "<sii:Sujeta>"
sEnv = sEnv & "<sii:NoExenta>"
If Trim(Me.Impuestos) = 0 Then
sEnv = sEnv & "<sii:TipoNoExenta>" & Trim("S2") & "</sii:TipoNoExenta>"
Else
sEnv = sEnv & "<sii:TipoNoExenta>" & Trim("S1") & "</sii:TipoNoExenta>"
End If
sEnv = sEnv & "<sii:DesgloseIVA>"
sEnv = sEnv & "<sii:DetalleIVA>"
sEnv = sEnv & "<sii:TipoImpositivo>" & Trim(Me.Impuestos) & "</sii:TipoImpositivo>"
sEnv = sEnv & "<sii:BaseImponible>" & Replace(Format(Trim(Me.BaseImponible), "###0.00"), ",", ".") & "</sii:BaseImponible>"
sEnv = sEnv & "<sii:CuotaRepercutida>" & Replace(Format(Trim(Me.TotalImpuestos), "###0.00"), ",", ".") & "</sii:CuotaRepercutida>"
sEnv = sEnv & "</sii:DetalleIVA>"
sEnv = sEnv & "</sii:DesgloseIVA>"
sEnv = sEnv & "</sii:NoExenta>"
sEnv = sEnv & "</sii:Sujeta>"
sEnv = sEnv & "</sii:DesgloseFactura>"
sEnv = sEnv & "</sii:TipoDesglose>"
sEnv = sEnv & "</siiLR:FacturaExpedida>"
sEnv = sEnv & "</siiLR:RegistroLRFacturasEmitidas>"
sEnv = sEnv & "</siiLR:SuministroLRFacturasEmitidas>"
sEnv = sEnv & "</soapenv:Body>"
sEnv = sEnv & "</soapenv:Envelope>"
Dim sResponseHead As String
Dim strvalue
Set objHttp = CreateObject("MSXML2.ServerXMLHTTP")
Set XMLDoc = New MSXML2.DOMDocument60
objHttp.Open "Post", sUrl, False
objHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objHttp.SetOption SXH_OPTION_SELECT_CLIENT_SSL_CERT, Me.CboCertificado
objHttp.send (sEnv)
XMLDoc.Load (objHttp.responseXML)
If XMLDoc.ReadyState <> 4 Then Exit Sub
Dim HTTPResult As String
HTTPResult = objHttp.responseText
MsgBox HTTPResult
Dim stTextoRespuesta As String
stTextoRespuesta = XMLDoc.documentElement.Text
If Right(stTextoRespuesta, 8) = "correcto" Then
'MsgBoxEx Me.hwnd, stTextoRespuesta, 3, vbCritical, "Balances"
Me.TxtFechaPresentacion = Right(Left(stTextoRespuesta, 44), 19)
Me.txtCsv = Left(stTextoRespuesta, 16)
Else
MsgBoxEx Me.hwnd, Right(stTextoRespuesta, 9), 3, vbCritical, "Balances"
GoTo 120
End If
sResponseHead = objHttp.getAllResponseHeaders()
Call ArchivaRespuesta("Emitida", HTTPResult, sResponseHead) '& Chr(13) & Chr(10) &
If XMLDoc.parseError.errorCode = 0 Then
If XMLDoc.ReadyState = 4 Then
AddNodeNif XMLDoc.documentElement
End If
Else
MsgBox XMLDoc.parseError.reason & vbCrLf & XMLDoc.parseError.Line & vbCrLf & XMLDoc.parseError.srcText
End If
Call GuardaRegistroSII("Emitida")
120
Set XMLDoc = Nothing
Set objHttp = Nothing
Set XMLDoc = Nothing
End Sub