1. Eventos principales del sistema
El archivo "Cereales eventos.vb" contiene los manejadores para tres eventos principales del sistema:
appcontext_objectinit
: Se ejecuta durante la inicialización de los objetos del modelo.appcontext_makeformfinal
: Se ejecuta cuando se finaliza la creación de un formulario.appcontext_saveform
: Se ejecuta antes de guardar un formulario.
Estos eventos controlan la configuración, validación y procesamiento de objetos relacionados con la operatoria de cereales, cartas de porte y liquidaciones.
2. Estructura y flujo de control
appcontext_objectinit
: Este evento configura propiedades iniciales de los objetos del sistema según su tipo. Por ejemplo, para el objeto"O_CTG_TRANSITO"
, restringe los permisos de modificación y adición si el usuario no pertenece a un grupo con permisos de sistema.appcontext_makeformfinal
: Este evento configura los formularios según su tipo y propósito, aplicando configuraciones específicas para transacciones y filtros.appcontext_saveform
: Este evento ejecuta la lógica de negocio al guardar un formulario, realizando validaciones y procesamientos específicos.
3. Funcionalidades específicas
Configuración de documentos de liquidación: En
appcontext_makeformfinal
, si se procesa un documento de tipo"DOCUCOMPRAS"
concampo("o1") = "L"
, se ocultan campos innecesarios y se configuran campos específicos para la liquidación LPG si el tipo es 209.Configuración de documentos de pedido (exportación): Para documentos de tipo
"DOCUPEDIDO"
, se aplica una lógica para calcular valores de exportación o configurar formularios de órdenes de compra.Función
LPG_ConfForms
: Esta función es central para la configuración de varios formularios, ya que elimina botones innecesarios, configura la disposición visual, establece la editabilidad y define propiedades como visibilidad y listas de valores.Validación de registros: La subrutina
LPG_ValidoREegistros()
valida que un documento no contenga más de un registro y que el precio no sea cero si el contrato es de precio fijo.
4. Flujos de trabajo principales
Flujo de liquidación LPG:
appcontext_objectinit
configura las propiedades iniciales del objeto de liquidación,appcontext_makeformfinal
configura el formulario yappcontext_saveform
activa las validaciones y procesa los cambios.Flujo de trabajo con Cartas de Porte (CTG): La configuración del formulario para los procesos de CTG se gestiona en
appcontext_makeformfinal
, que llama a funciones comoCTG_Config_form_Alta
oCTG_Config_form_ConfDef
. Al guardar el formulario,appcontext_saveform
ejecuta el proceso correspondiente, comoCTG_Config_Proceso_Alta
.
5. Relaciones entre componentes
Los archivos "Cereales LPG.vb" y "Cereales eventos.vb" trabajan conjuntamente para implementar la lógica de negocio.
"Cereales LPG.vb" implementa la funcionalidad para la comunicación con AFIP y el procesamiento de liquidaciones.
"Cereales eventos.vb" maneja los eventos del sistema para la configuración y validación de formularios.
"Cereales CPE" implementa la lógica para las cartas de porte electrónicas.
6. Flujo de validación y guardado
El flujo general para el procesamiento de documentos es:
appcontext_objectinit
: Establece las propiedades iniciales del objeto.appcontext_makeformfinal
: Configura los campos y el comportamiento del formulario.El usuario interactúa con el formulario y solicita guardar.
appcontext_saveform
: Realiza validaciones y procesa los datos.Métodos específicos actualizan la base de datos.
7. Nomenclatura de campos y valores especiales
El sistema utiliza una nomenclatura específica para los campos:
o1
: Código principal que identifica el tipo de documento o proceso.o2
: Código secundario que especifica una variante del documento.mp
: Código que identifica la operación en procesos (por ejemplo,i
para alta ocd
para confirmación definitiva).
Los tipos de documentos principales identificados por el código o1
son:
L
: Liquidación.Q
: Documento de exportación.M
: Orden/Contrato.C
: Movimiento de cereales.
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo