Voy a exponer una idea compleja pero que a mi me dio exelentes resultados para el sistema del IVA. La idea principal es hacer que toda la información de la declaración del IVA sea dinamica y permita modificarla en funció de los cambios a la ley y formatos.
Creo que se deben crear los siguientes modelos (nombres sujetos a revision):
forma_iva: para almacenar los datos del formulario (a veces cambia)
- name
- base: boolean (base = true es la planilla activa como en res_currency) solo puede haber una planilla en True
forma_iva_lines: Almacena todos los campos definidos en la planilla
- parent_id (m2o a forma_iva.id)
- code: para facilidad de uso y referencia
- name: Texto de la linea (etiquetas de la planilla)
- key_value: string con key de diccionario (ver campo data en delaracion_iva)
Los dos modelos anteriores no son más que una plantilla para la declaración.
delaracion_iva: guarda los datos de una declaracion generada
- fecha_presentacion
- fecha_contable
- numero_planilla (el nro de planilla de declaracion asignado por el seniat)
- certificado: (si hay exedente de credito fiscal el nro del certificado correspondiente
- status: (draft, done)
- data: este campo debe ser de tipo text y contener un diccionario python donde cada clave puede ser un valor o una tupla con los datos que serán usados para rellenar la planilla (forma_iva_lines.key_value)
iva_lines: este modelo almacenara APUNTADORES a los registros mostrados en los libros de compras y ventas
- domain: (compras o ventas)
- model: (Indica el modelo al que apunta con nombre openerp: 'account.invoice', 'ajuste', etc
- line_id: apunta al ID de la transaccion (registro) del modelo antes indicado
- type: 1 registro, 2 complemento, 3 anulacion, 4 ajuste
- parent_id1: apuntador al registro de origen (en este modelo) aplica si type != 1
Adicionalmente se requeriran varias validaciones del tipo si declaracion_iva.status = done no se pueden modificar los registros.
La intención es poder crear un proceso que cargue la planilla y llene el diccionario con los datos para poder llenar la plantilla de la declaración.
Por ahora lo dejo hasta aquí, la intención es sólo iniciar la revisión de la idea.
Voy a exponer una idea compleja pero que a mi me dio exelentes resultados para el sistema del IVA. La idea principal es hacer que toda la información de la declaración del IVA sea dinamica y permita modificarla en funció de los cambios a la ley y formatos.
Creo que se deben crear los siguientes modelos (nombres sujetos a revision):
forma_iva: para almacenar los datos del formulario (a veces cambia)
- name
- base: boolean (base = true es la planilla activa como en res_currency) solo puede haber una planilla en True
forma_iva_lines: Almacena todos los campos definidos en la planilla
- parent_id (m2o a forma_iva.id)
- code: para facilidad de uso y referencia
- name: Texto de la linea (etiquetas de la planilla)
- key_value: string con key de diccionario (ver campo data en delaracion_iva)
Los dos modelos anteriores no son más que una plantilla para la declaración.
delaracion_iva: guarda los datos de una declaracion generada iva_lines. key_value)
- fecha_presentacion
- fecha_contable
- numero_planilla (el nro de planilla de declaracion asignado por el seniat)
- certificado: (si hay exedente de credito fiscal el nro del certificado correspondiente
- status: (draft, done)
- data: este campo debe ser de tipo text y contener un diccionario python donde cada clave puede ser un valor o una tupla con los datos que serán usados para rellenar la planilla (forma_
iva_lines: este modelo almacenara APUNTADORES a los registros mostrados en los libros de compras y ventas
- domain: (compras o ventas)
- model: (Indica el modelo al que apunta con nombre openerp: 'account.invoice', 'ajuste', etc
- line_id: apunta al ID de la transaccion (registro) del modelo antes indicado
- type: 1 registro, 2 complemento, 3 anulacion, 4 ajuste
- parent_id1: apuntador al registro de origen (en este modelo) aplica si type != 1
Adicionalmente se requeriran varias validaciones del tipo si declaracion_ iva.status = done no se pueden modificar los registros.
La intención es poder crear un proceso que cargue la planilla y llene el diccionario con los datos para poder llenar la plantilla de la declaración.
Por ahora lo dejo hasta aquí, la intención es sólo iniciar la revisión de la idea.