martes, julio 27, 2010

CFD.NET vs CONTPAQ?

A raiz de un correo que recibi me quedo la inquietud de escribir este post para explicar un poco mas hacia que audiencia esta dirigido el componente. Si tu eres un desarrollador .NET en alguna de estas situaciones :

  • Tienes o estas en vias de construir un sistema de facturacion “In-house” con funcionalidad personalizada que lo hace dificil de reemplazar
  • Desarrollaste o estas desarrollando una aplicacion “empaquetada” que necesita adoptar las nuevas reglas para facturacion electronica

Entonces el CFD.NET es para ti! 

Por que?

Bueno a pesar de que ahorita todo mundo esta ofreciendo software que maneja la facturacion electronica, tal parece que la oferta comun es REEMPLAZAR tu sistema de facturacion, para poder generar los archivos requeridos por el SAT . Todo esto va muy bien si estas hablando de una facturacion sencilla, lineal, directa… pero que pasa si  ya tienes una aplicacion de facturacion que hace exactamente lo que quieres, considerando cada aspecto que hace unico tu negocio?

Bueno pero tambien existen servicios que generan los comprobantes no?

En efecto, existe la opcion de enviar tu informacion de facturacion hacia un servicio externo, pero no te deja eso con la preocupacion de permitir que la informacion viaje por internet y quede en manos de terceros?

Y entonces?

Aaah, pues es que el objetivo del componente es darte una flexibilidad de arquitectura en software para que puedas generar los comprobantes desde cualquier punto de un proceso, esto es, que puedas crear aplicaciones

  • Windows Services
  • Web Services
  • Windows Applications
  • ASP.NET Applications
  • Console Applications

a la medida de tus necesidades capaces de leer la información desde

  • Archivos
  • Servicios
  • Bases de Datos

de tal forma que la solucion final se ajuste a tu empresa y no al reves, esto difícilmente lo podrías lograr con software “empaquetado”.

Definitivamente la idea no es competir con las aplicaciones tipo CONTPAQ, la mayoria de ellas son buenos producto que cubren cierto nivel de necesidad en muchas empresas y eso hay que reconocerlo. Simplemente es que nosotros con CFD.NET, estamos enfocando nuestra oferta a proveer flexibilidad en el desarrollo de aplicaciones a la medida.

++ tus comentarios mantienen vivo este blog… dejame unas lineas!

viernes, julio 23, 2010

Actualizacion: Instrucciones para implementar la libreria - Comprobante Fiscal Digital

Para darse cuenta lo sencillo que es implementar la libreria no hay como hacerlo uno mismo, si te interesa obtener la version de evaluacion enviame un correo a

image

Este es el contenido del archivo zip con la libreria

 image

En el directorio bin se encuentran dos versiones de la libreria y sus dependencias. Para implementarla debes hacer referencia desde tu proyecto al archivo NHPSoft.Componentes.FacturacionElectronica.dll

En el directorio Documentacion se encuentra el archivo de documentacion tecnica de la libreria

En el directorio EditorREPX esta el editor de archivos RPX que son los utilizados para generar el archivo PDF con formato

En el directorio EjemploCFD se encuentra un proyecto VS2008 con un ejemplo de implementacion de la libreria

Mensaje: No se puede cargar el archivo ensamblado ChilkatDotNet2 ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto

Este mensaje tiene que ver con el procesador para el que se esta generando la aplicacion, bajo ciertos escenarios la libreria Chilkat que es una dependencia de la libreria, no se puede ejecutar debido a la arquitectura del procesador. La libreria esta disenada para ejecutarse en un ambiente de 64-bits y aunque en teoria no deberia haber problema por compilarla en 32-bits ha habido casos en que se muestra este mensaje.

La solucion es copiar al directorio de la aplicacion la dll que se encuentra en la carpeta bin>32-Bit>ChilkatDotNet2.dll

image

Mensaje: This assembly is protected by an unregistered version of “Intellilock”!

Este mensaje aparece en la version de evaluacion de la libreria y es completamente normal, se eliminara cuando se configure una licencia valida.

image

Como cambiar el formato de generacion del archivo PDF utilizando la libreria para comprobantes fiscales digitales .NET

Primero ejecuta la aplicacion EditorREPX.exe que se encuentra en la carpeta EditorREPX

image

image

Cuando se abra la aplicacion selecciona del menu  File>Open

image 

Navega hasta el directorio de la aplicacion donde se utiliza la libreria, en este directorio se crea de manera automatica un subdirectorio de recursos llamado RecursosCFD

image

Dentro del subdirectorio se encuentra el archivo default de formato llamado CFD.repx , seleccionalo para que se abra en el editor

image

Modifica el formato y cuando termines, guarda los cambios

image

Esta facil no? Espero sus comentarios!

jueves, julio 22, 2010

Archivos generados por la libreria de facturacion electronica (.NET)

Estos son los archivos que genera la libreria de facturacion electronica

Archivos Generados - Facturacion Electronica .NET

La nomenclatura con la que se generan los archivos es la siguiente : 

<RFC> - <SERIE> - <FOLIO>

En caso de que no se haya especificado una serie la nomenclatura del archivo quedaria de la siguiente manera:

<RFC> - <FOLIO>

La descripcion de los archivos se muestra a continuacion:

<ARCHIVO>.TXT

Archivo de texto UTF-8 que contiene la cadena original del comprobante fiscal

<ARCHIVO>.SLL Archivo de texto UTF-8 que contiene el sello digital correspondiente a la cadena
original del comprobante fiscal
<ARCHIVO>.XML Archivo XML UTF-8 que representa el comprobante fiscal digital, debe ser
resguardado para efectos fiscales
<ARCHIVO>.PDF.XML Archivo XML UTF-8 que contiene los datos del <ARCHIVO>.xml  pero agrega
otros adicionales para actuar como documento de datos para el PDF
<ARCHIVO>.PDF Archivo PDF que representa la informacion del comprobante fiscal digital en un formato para impresion

Generacion de archivos para comprobantes fiscales digitales

Esta es la version casi casi final de la libreria, hubo algunos ajustes internos, otros solo de nomenclatura para estandarizar los metodos, pero basicamente asi quedaria el codido para la generacion de los archivos

Sub Main()

'variables con la ubicacion de los archivos de certificado y llave privada
Dim fCertificadoDigital As String = "D:\FE\aaa010101aaa_CSD_01.cer"
Dim fLlavePrivada As String = "D:\FE\aaa010101aaa_CSD_01.key"

'crea el motor de CFD
Dim mf As New FacturacionElectronica.MotorCFD( _
fCertificadoDigital, fLlavePrivada, "a0123456789", "D:\FE\MotorTest")

'crea el comprobante fiscal
Dim cfd As New FacturacionElectronica.Comprobante( _
Now, "B", 1, 1, 2009, _
FacturacionElectronica.ComprobanteTipoDeComprobante.ingreso, _
"Pago en una sola exhibición", "Efectivo", 10, "Pago en efectivo")

With cfd

'declara el rfc del emisor, para la version demo usar: DEMO101010A1A
Dim RFCEmisor As String = "DEMO101010A1A"

'informacion del emisor
.AgregaDatosEmisor(rfcemisor, "Industrias del Sur Poniente, S.A. de C.V.", _
"Alvaro Obregon", 37, 3, "Col. Roma Norte", _
95460, "Monterrey", _
"Nuevo Leon", "Nuevo Leon", "Mexico", "", True)

'info del receptor
.AgregaDatosReceptor("CAUR390312S87", "Rosa María Calderón Uriegas", _
"Topochico", 52, "", "Jardines del Valle", "64001", _
"Monterrey", "Nuevo Leon", "Nuevo Leon", "Mexico", "")

'informacion de los conceptos
.AgregaConcepto(2, "PZA", "", "COMPUTADORA GENERICA", 5000.0)
.AgregaConcepto(1, "PZA", "ACERONE", "LAPTOP ACER", 7000)

'informacion de los impuestos
.AgregaImpuesto( _
FacturacionElectronica.ComprobanteImpuestosTrasladoImpuesto.IVA, 16)

End With

'agrega el comprobante a la lista del motor
mf.Comprobantes.Add(cfd)

'crea un objeto para recibir el resultado de la generacion de archivos
Dim resultado As FacturacionElectronica.ResultadoProceso = Nothing

'dispara el proceso para la generacion de archivos
resultado = mf.ProcesarComprobantes(True, False)

Console.WriteLine("Se generaron los archivos para " & _
resultado.ComprobantesGenerados.Count & " comprobante(s)")

Console.ReadLine()

End Sub



Comentarios?

Listado de licencias facturacion electronica

Para obtener el listado de licencias activas para la libreria de facturacion electronica puedes usar el siguiente codigo:

'revisa si hay licencias
If FacturacionElectronica.Licenciamiento.Licencias.Length = 0 Then
'carga las licencias desde el directorio default de la aplicacion
FacturacionElectronica.Licenciamiento.CargaLicencias()
End If

'barre el listado de licencias
For Each s As String In FacturacionElectronica.Licenciamiento.Licencias
'muestra en pantalla el detalle de las licencias
Console.WriteLine(s)
Next


image


Espero sus comentarios!

Facturacion Electronica - SAT

Como algunos de ustedes sabran, este proximo 2011 sera un requisito para los contribuyentes en Mexico, la generacion de comprobantes fiscales digitales para operaciones superiores a 2,000 pesos. Esto significa que las facturas y recibos que anteriormente se manejaban de manera impresa ahora se tienen que manejar en formato electronico.

La modificacion al modelo de emision de comprobantes fiscales implica que el contribuyente debe ingeniarselas para cumplir con las reglas tecnicas para la generacion de estos archivos digitales. Actualmente se ven algunas alternativas interesantes:
  1. Contratar un servicio en internet para capturar los comprobantes en linea y descargar o enviar los archivos digitales a nuestros clientes.
    • Ventajas: Bajo costo, implementacion casi instantanea
    • Desventajas: Migracion de datos hacia el sitio, administracion de la informacion, informacion financiera y de clientes en manos de terceros, funcionalidad generica limitada a lo ofrecido por el proveedor.
  2. Comprar un sistema de facturacion "empaquetado" que incluya la funcionalidad de creacion de los archivos para enviarselos a los clientes
    • Ventajas: Bajo costo, informacion financiera y de clientes en ambiente privado, datos en un solo lugar
    • Desventajas: Implementacion puede llegar a ser tardada, curva de aprendizaje para aprender a manejar el nuevo paquete de software, funcionalidad generica limitada a lo ofrecido por el proveedor.
  3. Desarrollar o adaptar un sistema propio de facturacion, investigar e implementar las reglas tecnicas establecidas por el SAT
    • Ventajas: Sistema a la medida, minima curva de aprendizaje para la nueva funcionalidad de facturacion electronica, informacion financiera y de clientes en ambiente privado, libertad de arquitectura de sistemas
    • Desventajas: Puede llegar a ser complejo investigar y digerir las reglas tecnicas establecidas por el SAT, la investigacion y desarrollo puede representar un costo que no todos los clientes estan dispuestos a asumir
Mi area de experiencia siempre ha estado en el desarrollo de aplicaciones a la medida es por esto que en recientes fechas distintos clientes me han preguntado como pueden cumplir con las disposiciones de hacienda SIN tener que cambiar sus aplicaciones existentes que han sido el resultado de una maduracion de negocio que dificilmente encontraran en una aplicacion "empaquetada". Y luego esta el tema de la desconfianza que genera el proporcionar informacion financiera y de clientes a un tercero por mas acuerdos de confidencialidad que les ofrezcan.

Asi nacio la libreria de Facturacion Electronica, como una respuesta a la necesidad de modificar o crear aplicaciones en .NET con absoluta libertad de arquitectura SIN tener que invertir tanto tiempo o recursos para cumplir con las obligaciones fiscales.

Pero como tampoco podia dejar fuera del espectro a todos los desarrolladores que se dedican a proveer soluciones empaquetadas de software, la libreria tambien considera una modalidad libre de restricciones en cuanto al numero o diversidad de contribuyentes.

Aqui les dejo una liga al video donde pueden ver la version BETA de la libreria, y otra liga a la documentacion tecnica, en estos dias estaremos liberando la version final a modo de evaluacion, si te interesa y necesitas mas informacion del modelo de licenciamiento o quieres que te envie la dll de evaluacion, mandame un correo a

contacto(arroba)humbertomartinez(punto)com

tambien me puedes agregar al messenger con la misma cuenta.