Página 1 de 2

Creacion de XML 3.2

Publicado: Lun Sep 28, 2015 5:14 pm
por mvillarreal
Estoy trabajando en un proceso de facturación y estoy buscando una clase, función o rutina que me permita generar el archivo XML del SAT en su versión 3.2 para posteriormente mandarlo timbrar. Una vez timbrado, también necesito poder obtener los datos del timbre.

Alguien sabe donde la puedo conseguir o quien vende una.

Saludos.

Re: Creacion de XML 3.2

Publicado: Lun Sep 28, 2015 6:43 pm
por Dado
Revisa la DLL que ofrecemos aqui la puedes usar en cualquier lenguaje de programacion, lo que hace es tomar un archivo de texto y convertirlo a CFDI total y completamente terminado, sellado digitalmente y hasta timbrado

Re: Creacion de XML 3.2

Publicado: Mar Sep 29, 2015 9:05 am
por mvillarreal
Le voy a dar un vistazo, pero necesito que genere solamente el XML v.3.2 para poder mandarlo timbrar con diferentes proveedores. No quiero tenerlo casado con algún servicio de timbrado en especial.

Lo que necesito puntualmente son dos cosas:

1) Poder generar el archivo XML v.3.2 estándar listo para timbrar.
2) Una vez timbrado, abrir el archivo XML ya timbrado y poder sacar los datos del proceso de timbrado.
3) Como bono adicional, si hay alguna que me genere el PDF en base al XML estaría de lujo.

Si hay una o mas librerías que puedan hacer estas funciones, me interesaría saber los precios para integrarlas a mis desarrollos también.

Saludos.

Re: Creacion de XML 3.2

Publicado: Mar Sep 29, 2015 9:39 am
por mvillarreal
Pregunta: Hay alguna documentación de como deben ser generados los archivos .INI que utiliza la DLL?

Re: Creacion de XML 3.2

Publicado: Mar Sep 29, 2015 9:42 am
por mvillarreal
Ya encontré los ejemplos.

Gracias.

Re: Creacion de XML 3.2

Publicado: Jue Oct 01, 2015 1:59 pm
por mvillarreal
Hola,

Estoy tratando de generar un XML de una factura, pero me marca un error (2) Dato Obligatorio. Tome como base uno de los archivo INI de ejemplo que vienen con la libreria el Basico y cuando trato de usar la funcion geenumError() y geenumErrorExt() para ver el detalle del error me marca otro error que dice "Unable to find an entry point named 'GeenumError' in DLL 'CFDLib.dll'."

Adjunto el INI que estoy tratando de procesar.

[Parametros]
Certificado="C:\Cert.cer"
LlavePrivada="C:\Key.key"
XMLDestino="c:\iv-0000001-20151001023731.xml"
Bitacora=C:\bitacora de proceso.txt

[Comprobante]
Version=3.2
Serie=IV
Folio=0000001
FormaDePago=Pago en una sola exibicion
Subtotal=0.00
Total=0.00
MetodoDePago=Indeterminado
TipoDeComprobante=Ingreso
LugarDeExpedicion=Monterrey, Nuevo Leon

[Emisor]
RFC=AAAA-000000-0A0
Nombre=Nombre del Usuario
Calle=** Licencia de Demostracion **
NoExterior=4412
NoInterior=
Colonia=** Licencia de Demostracion **
Localidad=** Licencia de Demostracion **
Municipio=Monterrey
Estado=Nuevo Leon
Pais=Mexico
CodigoPostal=64000
Regimen=Personas Fisicas con Actividad Empresarial

[Receptor]
RFC=CGM8006043K9
Nombre=Cementos Globales de Mexico, S.A. de C.V.
Calle=Av. Humberto Lobo # 5499
NoExterior=4412
NoInterior=
Colonia=Del Valle
Localidad=San Pedro Garza Garcia
Estado=Nuevo Leon
Pais=Mexico
CodigoPostal=64512

[Concepto1]
Cantidad=200
Unidad=PZA
Descripcion=Incremento vidrio transparente (IP44)
ValorUnitario=16
Importe=3200

[Concepto2]
Cantidad=2
Unidad=PZA
Descripcion=Apple iPhone 6s Plus de 64 Gb.
ValorUnitario=12500
Importe=25000

[Concepto3]
Cantidad=6500
Unidad=KG
Descripcion=Rollo de Acero Tensionivelado Calidad Comercial
ValorUnitario=6.25
Importe=40625

[Impuestos]
TotalImpuestosTrasladados=0.00
IVATrasladado=0.00
IVATasa=16.00

Como puedo usar la funcion geenumError para ver el detalle?

Saludos.

Re: Creacion de XML 3.2

Publicado: Jue Oct 01, 2015 2:11 pm
por Dado
Ok, varios detalles, los valores NO debes encerrarlos entre comillas

Código: Seleccionar todo

Certificado="C:\Cert.cer"    <<< mal
Certificado=C:\Cert.cer      <<< correcto
Cuando definas la ruta al archivo ini dentro de tu codigo usa la RUTA COMPLETA

Código: Seleccionar todo

GeneraCFD(".\..\archivo.ini", ClaveLlavePrivada);   <<< mal
GeneraCFD("c:\archivos\facturas\archivo.ini", ClaveLlavePrivada);   <<< correcto
El nombre de la funcion es GetError y GetErrorExt por eso no encuentra el punto de entrada

Por ultimo, no cometas el error de pensar que te puede servir para usarlo con otro PAC, estas advertido, los XML que genera solo pueden ser timbrados con la misma libreria y con el PAC Ecodex del cual nosotros vendemos los timbres, para que lo vayas considerando.

Re: Creacion de XML 3.2

Publicado: Jue Oct 01, 2015 2:31 pm
por mvillarreal
Ya encontré el error con el archivo de bitácora, pero la función geenumError y geenumErrorExt siguen sin funcionar.

Saludos.

Re: Creacion de XML 3.2

Publicado: Jue Oct 01, 2015 2:46 pm
por Dado
Si leiste el mensaje que publique ?

Re: Creacion de XML 3.2

Publicado: Jue Oct 01, 2015 8:48 pm
por mvillarreal
En los archivo que vienen con los ejemplos estan declaradas mal.
''' <summary>
''' Si la funcion GeneraCFD no puede crear el CFD devuelve un numero entero -
''' con el error, la funcion GeenumError devuelve una cadena que explica ese error
''' </summary>
<DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
Public Function GeenumError() As String
End Function

''' <summary>
''' GeenumErrorExt es una cadena adicional al error que indica con mas detalle en donde
''' ocurrio el error, por ejemplo, GeenumError puede devolver "Archivo no encontrado"
''' y GeenumErrorExt devuelve el *nombre* del archivo que no fue encontrado
''' </summary>
<DllImport("CFDLib.dll", CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.StdCall)> _
Public Function GeenumErrorExt() As String
End Function
Y si no puedo usar los XMLs en otro lado que caso tendria comprarlos?

Saludos.