Si están buscando para Clarion como solucionar factura electrónica les comento que una librería fue desarrollada y publicada con el fin de aportar una solución sencilla para los que están intentando enviar DTEs al SII.
La misma no requiere de manejo de XML ni conocimientos de firma digital puesto que se encapsula dicha logica y solo es necesario cargar los parámetros a unos objetos COM y enviar directamente los datos al servidor.
El ejemplo lo pueden descargar de aqui http://www.bitingenieria.com.ar
Agradezco cualquier comentario o sugerencia.
Código: Seleccionar todo
!Para poder evaluar necesitas las siguienets condiciones:
!- Poseer un certificado y claves en formato PEM (Una version nueva admite .pfx)
!- Poseer un archivo de folios solicitado a SII (https://maullin.sii.cl/cvc_cgi/dte/of_solicita_folios)
!- Registrar la fecl ejecutando FECLRegistrar.exe
!- Modificar los datos del emisor en el proyecto acorde a los datos de la empresa (Se pueden estraer de la web de SII)
ArchivoCertificado = 'C:\Documents and Settings\amiranda\My Documents\cotillon.crt'
ArchivoClave = 'C:\Documents and Settings\amiranda\My Documents\cotillon.key'
ArchivoFolio = 'C:\Documents and Settings\amiranda\My Documents\Folio.xml'
Folio = 5
FechaCmp = year(today()) & '-' & Format(month(today()), @N02) & '-' & Format(day(today()),@N02) ! Tomo la fecha actual como ejemplo
?OLE{PROP:Create} = 'fecllib.Fecl'
if ?OLE{'Autenticar(' & ArchivoCertificado & ',' & ArchivoClave & ')'} <> 0
?OLE{'NuevoEnvioDTE'}
?OLE{'EnvioDTE.ArchivoCertificado'} = ArchivoCertificado
?OLE{'EnvioDTE.ArchivoClave'} = ArchivoClave
?OLE{'EnvioDTE.SetDTE.Caratula.RutEmisor'} = '76209669-2'
?OLE{'EnvioDTE.SetDTE.Caratula.RutEnvia'} = '9226866-7'
?OLE{'EnvioDTE.SetDTE.Caratula.RutReceptor'} = '60803000-K'
?OLE{'EnvioDTE.SetDTE.Caratula.FchResol'} = '2016-04-27'
?OLE{'EnvioDTE.SetDTE.Caratula.NroResol'} = 0
?OLE{'EnvioDTE.SetDTE.Caratula.TmstFirmaEnv'} = ''
?OLE{'EnvioDTE.SetDTE.Caratula.AgregaSubTotDTE(33, 1)'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.IdDoc.TipoDTE'} = 33
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.IdDoc.Folio'} = Folio
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.IdDoc.FchEmis'} = FechaCmp
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Emisor.RutEmisor'} = '76209677-2'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Emisor.RznSoc'} = 'DISTRIBUIDORA'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Emisor.GiroEmis'} = 'Cosas varias'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Emisor.AgregaActeco(523999)'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Emisor.DirOrigen'} = 'Calle y Nro'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Emisor.CmnaOrigen'} = 'Santiago'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Receptor.RUTRecep'} = '7604333-7'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Receptor.RznSocRecep'} = 'DUST S.A.'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Receptor.GiroRecep'} = 'Giro Receptor'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Receptor.DirRecep'} = 'Calle receptor'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Receptor.CmnaRecep'} = 'Santiago'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Totales.MntNeto'} = 171639
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Totales.TasaIVA'} = 19
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Totales.IVA'} = 32611
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Totales.MntTotal'} = 204250
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).NroLinDet'} = 1
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).TpoCodigo'} = 'INT1'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).VlrCodigo'} = '011'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).NmbItem'} = 'Cajón AFECTO'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).DscItem'} = 'Cajón AFECTO'
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).QtyItem'} = 122
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).PrcItem'} = 833
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).MontoItem'} = 101626
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.RE'} = ?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Emisor.RutEmisor'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.TD'} = ?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.IdDoc.TipoDTE'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.F'} = ?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.IdDoc.Folio'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.FE'} = ?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.IdDoc.FchEmis'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.RR'} = ?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Receptor.RUTRecep'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.RSR'} = ?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Receptor.RznSocRecep'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.MNT'} = ?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Encabezado.Totales.MntTotal'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.IT1'} = ?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.Detalle(0).DscItem'}
?OLE{'EnvioDTE.SetDTE.DTE(0).Documento.TED.CAF.CargaDesdeArchivo(' & ArchivoFolio & ')'}
?OLE{'EnvioDTE.Firma'}
MESSAGE('SI')
If ?OLE{'EnviarDTE'} <> 0
MESSAGE('DTE enviado con éxito! TrackID: ' & ?OLE{'TrackID'})
Else
MESSAGE(?OLE{'ErrorDesc'})
End
MESSAGE(?OLE{'EnvioDTE.XML'})
else
MESSAGE(?OLE{'ErrorDesc'})
end