Menu principal

martes, 29 de agosto de 2017

Mantención y Timbraje de folios del SII

FACTURACIÓN ELECTRÓNICA



Estimados amigos antes de empezar con cualquier desarrollo para facturación electrónica lo primero que vamos a necesitar es un mecanismo de administración de folios. Y es lo que primero deberíamos desarrollar.

Aquí vamos!!!


EL TIMBRAJE HISTORICO


Antes de que existiese la facturación electrónica el contribuyente debía enviar a una imprenta la confección de las facturas que luego eran enviadas a timbrar físicamente al SII.
En una prensa era acuñado el sello de impuestos internos sobre los documentos. Lo que permitía emitir facturas secuencialmente de acuerdo al último folio emitido.

Actualmente para las facturas electrónicas existe un proceso similar en este caso el SII te autoriza la utilización de un rango de folios. Estos folios son descargados a un archivo (ISO-8859-1) desde la plataforma del SII, en formato XML. el que debe ser resguardo en tu sistema para luego utilizar en el ERP donde quieras implementar la facturación electrónica.

A diferencia del método de facturación manual donde la facturación debe realizarse secuencialmente en la facturación electrónica esto no tiene importancia, es decir, puedes emitir la factura con folio 1, luego la 15, después emitir el folio 50, puedes incluso dejar de usar los folios 16 al 49 y nunca usarlos. Esto no le importa al SII.

Lo importante es que los folios emitidos, sean firmados con el CAF correcto.


ADMINISTRADOR DE FOLIOS

He desarrollado una aplicación para la administración de estos folios. Y una librería para la integración con otros sistema de ventas, este componente puede ser incluido en nuevos proyectos entregando la funcionalidad necesaria.
La librería en general entrega el folio disponible para el documento que se está emitiendo, además de efectuar las validaciones necesarias, como por ejemplo validar que el folio tenga su correspondiente CAF.


Pantalla principal del administrador de folios


Vista rápida del archivo de folios


Visualización de XML de folios



Es sumamente importante que el XML sea almacenado en un lugar seguro, ya que con él, se emitirá y validará el folio generado.

En mi caso lo he almacenado en SQLServer.





Saludos,

Próximamente veremos el proceso de firma de los DTE.




domingo, 27 de agosto de 2017

GENERAR DOCUMENTO TRIBUTARIO ELECTRONICO (DTE)

 Procedimiento para la construcción de un DTE

- Esquema v1.0 del SII
- C# Visual Studio para cualquier Framework

 
Para generar un documento tributario eléctronico es necesario descargar el esquema xsd que proporciona el SII. Con este documento podremos generar las clases necesarias para efectuar la construcción de nuestro DTE.

Lo primero que debemos hacer es descargar desde aquí los esquemas del SII. Una vez que tenemos los esquemas usaremos aplicacion xsd.exe que nos proporciona Visual Studio para generar las clases que nos permitiran generar los DTE en formato XML.


Generar clase para manejo de los DTE.

Parametros para usar xsd.exe.
/c : Genera clases para este esquema
/n : Espacio de nombres para archivos de clase generados.



xsd.exe DTE_v10.xsd xmldsignature_v10.xsd /c /n:DTEv10



Una vez ejecutado el comando el xsd.exe nos generara la clase DTE_v10.cs que contiene todos los metodos y propiedades necesarias para manipular las clase y posterior generación de los DTE en formato XML.


Declaracón de instancias de objetos de la clase recien generada
Una vez que generamos la clase la agregamos al proyecto del sistema de ventas que estemos realizando.


Instanciamos las clase DTE_v10
En mi caso creé el espacio de nombres FacturacionElectronica. por eso el using es FacturaciónElectronica.









PREPARANDO EL DTE
Aplicando la clase para generar DTE del SII














Una vez que tengamos lista la clase la usaremos en el sistema de ventas que estemos preparando para la facturación electrónica.

Definiendo datos del IdDoc.











Definiendo datos del Emisor.

Definición del Receptor.















Definición para los Totales.








Definiendo los detalles del DTE.




















Firmamos el DTE.









Por último serializamos la clase













El resultado es el siguiente DTE.













































Continuación





























Próximamente seguiremos con el proceso de firma digital si es que existe interés por el tema.
Saludos

sábado, 25 de octubre de 2014

Integrar correctamente MySql y Visual Studio 2008, 2010, 2013

Después de lidiar con la imposibilidad de integrar estos dos componente me decidí a estudia el problema para encontrar la solución. Después de googlear me encontre con la desagradable sorpresa que mi problema era el de muchos. También habian personas que no tenian el problema pero eran incapaces de explicar como lo habian integrado. Otros también decian que no se podía integrar con algunas versiones de Visual Studio y blablabla.....
Por tal motivo me decidí también a realizar esta explicación de como lograr la integración con cualquier version de Visual Studio.

Manos a la obra
Lo primero que necesitaremos es descargar los siguientes componentes :

MySQL Installer web community
El instalador web de MySQL nos permitira instalar los productos necesarios para realizar un desarrollo.

MySQL Connector/Net
Es el conjunto de componentes necesarios para conectar a una base de datos usando los conectores Net.

MySQL for Visual Studio 1.1.4
Es la versión de MySQL diseñada para integrarse correctamente con Visual Studio.

Lo primero que vamos a hacer es instalar el MySQL for Visual Studio 1.1.4, este es un proceso bastante sencillo y no se merece mayor detalle, el asistente de instalación te guiará sin problemas.

Una vez realizado el proceso de instalación nos aparecerá correctamente el origen de datos MySQL en VS 2008, 2010 o 2013 en todas sus versiones.



he realizado este video para mostrar que productos deben instalar para realizar una instalación correcta. (https://www.youtube.com/watch?v=8EMMumq4y2A&t=77s)




Saludos!!!

lunes, 30 de junio de 2014

Instalación de moodle.

Hola amigos, Para empezar con mi primer post me gustaría hacerlo con la explicación de como instalar moodle en un servidor XAMPP.


Para montar el servidor XAMPP solo deben descargar el instalador desde la página oficial y ejecutar dicho instalador en su sistema operativo.

Una vez instalado deben verificar los prerequisitos que les e indicado a continuación.

Requisitos previos


- Tener instalado el servidor XAMPP (Apache, MySql, PHP)
- Configurar los archivos:


  • C:\Windows\System32\drivers\etc\hosts
Ejemplo:


Esta configuración les permitirá acceder desde cualquier equipo de su red incluido su equipo, lo digo porque he visto a otros usuarios preguntar porque no pueden acceder desde otros equipos de su red. Bueno esta es la solución indicar en el archivo hosts la IP privada asignada a su servidor en la red interna.

127.0.0.1       www.eco-moodle.com
192.168.1.67    www.eco-moodle.com #para que funcione en una red local


  • C:\xampp\apache\conf\extra\httpd-vhosts.conf

Ejemplo:

NameVirtualHost 127.0.0.1:80

<VirtualHost www.eco-moodle.com:80>
        DocumentRoot "C:\sitios-web\moodle"
        ServerAdmin jpdonosom@gmail.com
        ServerName www.eco-moodle.com
        ErrorLog "logs/eco-moodle.com-error.log"
        CustomLog "logs/eco-moodle.com-access.log" common

        <Directory "C:\sitios-web\moodle">
                Options All
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>


El video



domingo, 25 de agosto de 2013

¿Inteligente o no?



Este fin de semana después  de tener un diálogo acerca de que es la inteligencia me propuse entender y buscar la forma de como explicarme la forma de como funciona.

Lo primero que realice fue buscar una definición lo bastante sencilla y clara
"Resumiendo, La inteligencia es la capacidad de entender, asimilar, elaborar información con el objetivo de resolver un problema". Por lo que la inteligencia también esta relacionada con la cantidad de información que somos capaces de almacenar y la velocidad en que podemos procesarla para obtener el resultado (resolver).

La inteligencia también tiene factores culturales. Y en sociedades occidentales como la nuestra para considerar a alguien inteligente necesitamos inevitablemente un cronometro en mano, ¿Y que pasa si nos demoramos mas en resolver un problema?  ¿Somos tontos?


En nuestras culturas ancestrales y en las del mundo no era necesario tener la respuesta a flor de labio, solo bastaba con internarse un par de semanas en la montaña en busca de las respuestas para luego volver con ella para ser considerado inteligente. (Que rico y sanador)

¿Por qué ahora no podemos hacer lo mismo? sobre todo cuando tu jefe te informa vía email: 

Estimado José, 
Se le a asignado proyecto a realiza identificado como X781  ¿Que cosa es el bendito proyecto?


Por favor, tenerlo resuelto a más tardar el Martes.

Al recibir este tipo de instrucciones lo primero que exclamamos es, !pero si mañana es Martes¡
Y que paso con mi semana de meditación en la montaña!!!.
Que grandes eran las culturas ancestrales!!! ¿no?

Considerando lo anterior evaluar a una persona para identificar si es inteligente o no, indudablemente tiene factores culturales. Que sucede si evaluáramos a un miembro indígena de una de las tribus mas desconocidas del mundo un maschco-piro una tribu del Perú, probablemente lo reprobaríamos, y ellos a nosotros al evaluarnos en la selva.

La inteligencia también nos ayuda a adaptarnos a los cambios probablemente si uno de nosotros cayera en la selva peruana y nos rescataran los maschco-piro probablemente tengamos que adaptarnos a su forma de vida o perecer. 
Indudablemente durante la historia del mundo hay quienes escapan a la inteligencia promedio y se convierten en leyendas de la genialidad independiente de la era o tribu donde les toco vivir (Aristarco, Arquímides).

Siguiendo con el tema y buscando acercarme a una respuesta que me fuese convincente de acuerdo a nuestros tiempos, cultura, me surge una nueva pregunta ¿Cuál es la diferencia entre ser o no inteligente?  Y creo que podría resumirse en dos cosas:

La primero que tan lejos en el futuro podría pensar, y que tan rápido podría generar ese pensamiento.

Como por ejemplo cuando jugamos ajedrez o póker nuestras habilidades están determinadas por cuantas jugadas podemos pensar por adelantado. Cuanta historia puedo recordar y así determinar el siguiente movimiento.

Finalmente entiendo que la inteligencia es algo que se puede desarrollar, proyectar creando juicios ante los demás que nos evalúan. Y si queremos ser considerados como tal es importante que lo antes posible entremos en contacto con prácticas como ajedrez que sin duda son grandes herramientas para nuestro futuro o el de  nuestros hijos y no menos importante de las matemáticas, el cálculo y la lógica.

Después de pasearme por un mar de interrogantes y descubrimientos para formarme una impresión de lo que es la inteligencia. Me doy cuenta de mi necesidad de ser considerado inteligente, pero, siempre y cuando me dieran a cambio mi semana de meditación en la montaña quizás eso es lo que necesitamos cada uno de nosotros.

Génesis


La necesidad de transmitir la forma en que las ideas fluyen en mi mente para que finalmente y gracias a el mar de información a la que tengo la posibilidad acceder llevan a formar mis realidades respecto a lo que veo, escucho y leo. Teniendo en cuenta estos factores y la forma particular de como estos datos se relacionan en la extensa maraña de nano conexiones de mi sistema cerebral que finalmente me llevan a crear mis conclusiones, acerca de la realidad que me toca observar.

Esta es la génesis y el porque de iniciar estas mis publicaciones.