viernes, 27 de marzo de 2020

Consultas y errores frecuentes Conversor Aranduka


En esta entrada voy a dejar respuestas a errores frecuentes evacuados a los compradores del programa

1) Error el el monto cargado con decimales.
Todos los montos cargados se tiene que redondear a cero, muchas veces esta formulado un número dividido por 1.1, o un número dividido entre 11 y una suma, aunque las nuevas versiones de la aplicación ya detecta este error, hay que redondear a cero todos los números, una coma de mas hace que el importador del Aranduka lo tome como nuevo campo y se genera el error como el de la foto:




2) Error de carga en la condición de la factura:
Timbrado condición debe ser contado o credito, así en minúsculas y sin acento, en el caso como el de la foto se escribió Contado, con una mayuscula en la primera letra, y el Aranduka dió error.





3) Los nombres de las facturas no debe tener comillas
 El importador del Aranduka toma la comilla de mas como que se acabo el campo, al igual que la coma del numero en el caso de no redondear a cero los valores.





4) Falta completar todos los campos de Egresos e Ingresos.
Los tipos de egreso tienen campos exclusivos a llenar, ya sea si es factura, autofactura, extracto de tarjeta etc. En la plantilla modelo se envia los campos a rellenar para casi todos los tipos de egreso, si el egreso no se llenan bien los campos aparece este error.
Lo mismo pasa con los Ingresos.





.
5) Facturas duplicadas.
Este no es un error en si, la versión 1.0.3 permite facturas duplicadas, es una advertencia pero debemos ver que no estemos duplicando la información.
El importador del Aranduka nos dirá ya existe información emitida con la información ingresada 


6) Error de carga del RUC

El ruc se debe cargar en todos los casos sin el dígito verificador


7) Las sociedades simples 
Las sociedades simples tiene muy limitado el tipo de ingreso y egreso a incluir, la set ha publicado los tipos de egresos para sociedades simples, esta información esta en una hoja del libro del programa para mayor comodidad y llenado para sociedades simples.
El importador del Aranduka solo dice la clasificación del egreso no es un valido valido, sin mayores detalles.




Por ultimo para verificar el JSON antes de importar al aranduka.
A) Existen varios programas para verificación de errores en la estructura del JSON, este esta online
Se puede acceder en este enlace:

Abren el archivo JSON y le dan la opcion tree, ahi va a saltar el error y le va decir en que linea está en error.



En este caso había una doble comilla en una factura



A) Ademas se cuenta con un programa que he desarrollado en Visual Studio para detección de errores. Para los compradores del programa se va proveer el mismo si costo.

Si todo esta correcto mostrará la estructura del JSON generado.


Si hay un error, aparecerá un mensaje indicando linea y posición del error


Se abrirá un cuadro de texto indicando exactamente el lugar del error pintando en rojo lo que esta mal.


Este el mismo caso de la doble comilla en la factura.




jueves, 12 de marzo de 2020

Recuperar datos de Aranduka a Excel

En esta entrada voy a poner información sobre un programa que estoy desarrollando para recuperar todos los datos de mi aranduka y cargarlos al excel via consulta ODBC. (Open Database Connectivity)

Si bien el Aranduka al hacer la exportación del archivo zip, genera dos archivos de textos con la extensión xls, ingresos.xls y egresos.xls esta seria otra forma de acceder a los datos.

Para eso debo tener instalado el driver ODBC de SQLite3
El driver de ODBC se puede encontrar en http://www.ch-werner.de/sqliteodbc/

Diver64B

Después debo instalar este Driver y Listo puedo realizar las consultas.
Voy a crear la carpeta C:\IRP y voy a copiar ahi la base de datos del Aranduka, para saber donde esta la base de datos ver en:

Base de datos del Aranduka

Conecto con la base de datos que esta en C:\IRP.

Creo tres consultas, las guardo en un Recordset y le doy recuperar en tres hojas, a los que voy a llamar contribuyentes, Ingresos y Egresos.

La estructura de la tabla del Aranduka es esta:

Tiene 6 tablas


Ejecutamos 3 Consultas y tenemos:

Ingresos:



Egresos:



Y por último los contribuyentes:



El código fuente es muy sencillo en VBA:
Hay que poner en un libro las hojas , contribuyente, Ingresos y Egresos, abrir VBA manager, agregar un modulo y copiar lo siguiente en el modulo:

Sub Extre_datos()

Dim conn As Object, rst As Object

Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")

' OPEN CONNECTION
conn.Open "DRIVER=SQLite3 ODBC Driver;Database=C:\IRP\2018.db;"
strSQL = "SELECT * FROM egresos;"

' OPEN RECORDSET
rst.Open strSQL, conn, 1, 1

' OUTPUT TO WORKSHEET
Worksheets("Egresos").Range("A2").CopyFromRecordset rst
 
For n = 0 To (rst.Fields.Count - 1)
Sheets("Egresos").Cells(1, n + 1) = rst.Fields(n).Name
Next

Set rst = Nothing: 'Set conn = Nothing
'***********************************************************************

Set rst = CreateObject("ADODB.Recordset")

strSQL = "SELECT * FROM ingresos;"

' OPEN RECORDSET
rst.Open strSQL, conn, 1, 1

' OUTPUT TO WORKSHEET
Worksheets("Ingresos").Range("A2").CopyFromRecordset rst
 
For n = 0 To (rst.Fields.Count - 1)
Sheets("Ingresos").Cells(1, n + 1) = rst.Fields(n).Name
Next


'***********************************************************************

Set rst = CreateObject("ADODB.Recordset")

strSQL = "SELECT * FROM contribuyentes;"

' OPEN RECORDSET
rst.Open strSQL, conn, 1, 1

' OUTPUT TO WORKSHEET
Worksheets("Contribuyentes").Range("A2").CopyFromRecordset rst
 
For n = 0 To (rst.Fields.Count - 1)
Sheets("Contribuyentes").Cells(1, n + 1) = rst.Fields(n).Name
Next


' FREE RESOURCES
Set rst = Nothing: Set conn = Nothing

End Sub


La estructura de Egresos en SQL es esta :

CREATE TABLE "egresos" (
    "id"    INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    "ruc"    VARCHAR(30) NOT NULL,
    "periodo"    INTEGER NOT NULL,
    "fecha"    NUMERIC DEFAULT (datetime('now','localtime')),
    "fecha_carga"    DATE DEFAULT (datetime('now','localtime')),
    "tipo"    TEXT NOT NULL,
    "tipo_texto"    TEXT,
    "tipo_egreso"    VARCHAR(30),
    "tipo_egreso_texto"    TEXT,
    "datos"    TEXT,
    "valor"    NUMERIC,
    "fecha_bitacora"    DATE DEFAULT (datetime('now','localtime')),
    "relacionado_tipo_identificacion"    TEXT(30),
    "relacionado_identificacion"    TEXT(30),
    "relacionado_nombres"    TEXT(250),
    "clasificacion_egreso"    VARCHAR(2),
    "timbrado_numero"    NUMERIC,
    "timbrado_documento"    TEXT
);


Me parece extraño que el campo fecha sea NUMERIC, en lugar de DATE.

La estructura de la tabla Ingresos es esta:

CREATE TABLE "ingresos" (
    "id"    INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
    "ruc"    VARCHAR(30) NOT NULL,
    "periodo"    INTEGER NOT NULL,
    "fecha"    NUMERIC DEFAULT (datetime('now','localtime')),
    "fecha_carga"    DATE DEFAULT (datetime('now','localtime')),
    "tipo"    TEXT,
    "tipo_texto"    TEXT,
    "tipo_ingreso"    VARCHAR(30),
    "tipo_ingreso_texto"    TEXT,
    "datos"    TEXT,
    "valor"    NUMERIC,
    "fecha_bitacora"    DATE DEFAULT (datetime('now','localtime')),
    "relacionado_tipo_identificacion"    TEXT(30),
    "relacionado_identificacion"    TEXT(30),
    "relacionado_nombres"    TEXT(200),
    "valor_gravado"    NUMERIC,
    "valor_no_gravado"    NUMERIC,
    "timbrado_numero"    NUMERIC,
    "timbrado_documento"    TEXT
);


También el campo fecha es NUMERIC, en lugar de DATE.

Cambien se podría hacer consulta para alterar datos y cargar directamente desde el excel, solo que hay un inconveniente hay un campo llamado datos que tiene datos al parecer encryptados com MD5.

La tabla de familiares a cargo es un misterio, no pude encontrar donde se guardan los datos de los familiares a cargo.


Power Query

Otra forma de ver seria con Power Query de Ms Excel, debo tener instalada tambien ODBC de Sqlite3.

La forma seria asi, creo un archivo de texto con la extension "dqy" en este caso para egreso seria Egresos.dqy que contenga lo siguiente.

XLODBC
1
DSN=SQLite3 Datasource;Database=%HOMEPATH%\AppData\Local\aranduka\db\aranduka.db;StepAPI=0;SyncPragma=NORMAL;NoTXN=0;Timeout=100000;ShortNames=0;LongNames=0;NoCreat=0;NoWCHAR=0;FKSupport=0;JournalMode=;OEMCP=0;LoadExt=;BigInt=0;JDConv=0;
SELECT egresos_0.id, egresos_0.ruc, egresos_0.periodo, egresos_0.fecha, egresos_0.fecha_carga, egresos_0.tipo, egresos_0.tipo_texto, egresos_0.tipo_egreso, egresos_0.tipo_egreso_texto, egresos_0.datos, egresos_0.valor, egresos_0.fecha_bitacora, egresos_0.relacionado_tipo_identificacion, egresos_0.relacionado_identificacion, egresos_0.relacionado_nombres, egresos_0.clasificacion_egreso, egresos_0.timbrado_numero, egresos_0.timbrado_documento  FROM egresos egresos_0


id    ruc    periodo    fecha    fecha_carga    tipo    tipo_texto    tipo_egreso    tipo_egreso_texto    datos    valor    fecha_bitacora    relacionado_tipo_identificacion    relacionado_identificacion    relacionado_nombres    clasificacion_egreso    timbrado_numero    timbrado_documento



Luego grabar el archivo Egresos.dqy, darle doble click y se abrirá en una planilla excel los datos de egresos, esto solo debe ser para visualizar sus datos, cualquier cambio que se haga en la planilla puede afectar sus datos.

martes, 3 de marzo de 2020

Como hacer backup de tu sistema aranduka

En esta entrada voy a explicar como hacer una copia de seguridad de la base de datos de tus archivos del Aranduka. Este método es para la Version 1.0.3 del Aranduka.

Vamos a suponer que quiero hacer pruebas con mi programa aranduka y no quiero perder ningun dato de todo lo que ya tengo cargado.

Te voy a explicar como hacerlo sin perder tus datos.

La base de datos del programa Aranduka se encuentra en la siguiente carpeta:

C:\Users\'tu nombre de usuario'\AppData\Local\aranduka\db\aranduka.db

Donde  'tu nombre de usuario' va ser el que te asignó windows como usuario.

La base de datos aranduka.db es de sqlite, si tienes algun programa compatible con Sqlite puedes editar ese archivo , pero no es recomendable.  Más información en https://es.wikipedia.org/wiki/SQLite


Ahora bien la carpeta Appdata es un carpeta oculta hay que poner en opciones de carpeta.
Para hacer visble dicha carpeta , desde el explorador de windows nos vamos a:
vista - opciones de carpeta
y marcamos la opcion - Mostrar archivos, carpetas y unidades ocultas.

Un video ilustrativo en youtube de como ver carpetas ocultas lo pueden ver en:

Ver carpetas ocultas



Otra forma de abrir es escribiendo en la linea de comandos lo siguiente :

%HOMEPATH%\AppData\Local\aranduka\db\

Una vez que podamos acceder a la carpeta donde está la base de datos, copiamos el archivo  aranduka.db en un lugar seguro y despues que terminemos de hacer nuestras pruebas sobreescribimos nuestro archivo original sobre nuestro archivo en donde hicimos las prueba, y tenemos todos los datos tal cual lo dejamos.

La tabla de familiares a cargo no la he podido encontrar, asi que probablemente habrá que cargar de nuevo.

Les agradeceria sus comentarios en esta pagina para saber si les resulto útil esta entrada.


Facturas

  Calculadora de IVA Calculadora de IVA Ingrese el monto: IVA (10%): 0 Retención de I...